Spring和DB4O集成总结<o:p></o:p>
步1。
编写一个包含SETTER,GETTER的POJO类:
package com.model;
/**
* @author gyc
*/
public class ModelBean {
private String msg;
private String name;
private Integer id;
public ModelBean() {
super();
// TODO Auto-generated constructor stub
}
<o:p> </o:p> /**
* @param msg
* @param name
* @param id
*/
public ModelBean(String msg, String name, Integer id) {
super();
this.msg = msg;
this.name = name;
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
<o:p></o:p>
<o:p></o:p>
public void setName(String name) {
this.name = name;
}
<o:p></o:p>
<o:p></o:p>
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
System.out.println("Now in ModelBean's setMsg() method,the msg is-->"+msg);
}
<o:p> </o:p> public void sayHello()
{
System.out.println(msg);
}}
及在Spring初始化配置文件中配置:
<bean id="hello" class="com.model.ModelBean"><o:p></o:p>
<property name="name"><o:p></o:p>
<value>tomvalue><o:p></o:p>
property><o:p></o:p>
<property name="id"><o:p></o:p>
<value>13value><o:p></o:p>
property><o:p></o:p>
<property name="msg"><o:p></o:p>
<value>你好,Tom!value>
property><o:p></o:p>
bean><o:p></o:p>
步2:编写访问DB4O数据库的处理类:
package com.store;
<o:p></o:p>
import java.io.File;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
<o:p></o:p>
import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.model.ModelBean;
import com.store.db4outil.Util;
<o:p></o:p>
/*
* @author gyc
*/
public class AccessDb4oDeal {
<o:p> </o:p> public AccessDb4oDeal() {
// TODO Auto-generated constructor stub
// 打开DB4O对象数据库
// new File(Util.DB4OFILENAME).delete();
// db = Db4o.openFile(Util.DB4OFILENAME);
<o:p> </o:p>
}
<o:p></o:p>
private ObjectContainer db = null;
<o:p></o:p>
private String dbfilename;
<o:p></o:p>
private ModelBean modelbean;
<o:p></o:p>
public ModelBean getModelbean() {
return modelbean;
}
<o:p></o:p>
public void setModelbean(ModelBean modelbean) {
this.modelbean = modelbean;
}
<o:p></o:p>
public String getDbfilename() {
return dbfilename;
}
<o:p></o:p>
public void setDbfilename(String dbfilename) {
this.dbfilename = dbfilename;
}<o:p> </o:p>
// 打开DB4O对象数据库
public void initAndOpenDb4o() {
// new File(Util.DB4OFILENAME).delete();
// db = Db4o.openFile(Util.DB4OFILENAME);
// new File(this.dbfilename).delete();//如果有这条语句,则会先把之前数据删除
// db = Db4o.openFile(this.dbfilename);
db = Util.openLocalDb(db);
System.out.println("Now in AccessDb4oDeal ,initAndOpenDb4o() mehtod!");
}
<o:p></o:p>
public boolean storeObject(Object obj) {
boolean flag = false;
try {
Util.storeObject(db, obj);
System.out.println("Now in AccessDb4oDeal,storeObject Method!");
flag = true;
} catch (Exception ex) {
System.out.println("向DB4O对象数据库插入对象数据发生异常:" + ex);
} finally {
Util.closeDb(db);
}
return flag;
}
// QBE方式检索所有对象数据
public Collection queryAllObjects(Object obj) {
java.util.List list = null;
<o:p></o:p>
try {
ObjectSet os = Util.retrieveAllObjectQBE(db, obj);
list = Util.convertObjectSet(os);
System.out.println("Now in AccessDb4oDeal,queryAllObjects method!");
} catch (Exception ex) {
System.out.println("从对象数据库中检索对象失败: " + ex);
} finally {
Util.closeDb(db);
}
return list;
<o:p></o:p>
}
// 用迭代器遍历集合数据
public void listResult(Collection col) {
System.out.println("Now in AccessDb4oDeal,listResult method!The Result size is --->"+ col.size());
Iterator it = col.iterator();
while (it.hasNext()) {
ModelBean obj = (ModelBean) it.next();
System.out
.println("Now in AccessDb4oDeal,listResult method!The Object's Field Data is -->"
+ obj.getMsg());
}
}
// 从对象数据库(只限本次连接)中检索所有对象数据,返回一个对象集合
public Collection findAllObjects(Object obj) {
java.util.List list = null;
try {
ObjectSet os = Util.retrieveAllObject(db, obj.getClass());
list = Util.convertObjectSet(os);
System.out.println("Now In AccessDb4oDeal,findAllObjects method!");
} catch (Exception ex) {
System.out.println("从对象数据库中检索对象数据失败: " + ex);
} finally {
Util.closeDb(db);
}
return list;
}
/*
* 根据特殊条件检索对象
*/
public Object findObjectByFieldValue(Object obj, String field, String value) {
Object objreturn = null;
try { ObjectSet os = Util.queryObjectQEByFieldPramatersString(db, obj
.getClass(), field, value);
List list = Util.convertObjectSet(os);
Iterator it = list.iterator();
while (it.hasNext()) {
objreturn = it.next();
}
} catch (Exception ex) {
System.out.println("根据字段值条件检索对象失败: " + ex);
} finally {
Util.closeDb(db);
}
return objreturn;
<o:p></o:p>
}
}
<o:p></o:p>
及在Spring初始化配置文件中配置(用于Spring生成访问DB4O数据库的处理类):
<bean id="accessdb4odeal" class="com.store.AccessDb4oDeal"><o:p></o:p>
<property name="dbfilename"><o:p></o:p>
<value>formula1.db4ovalue>property> bean><o:p></o:p>
还有作为TOOLS的DB4O工具类:<o:p></o:p>
package com.store.db4outil;
import java.util.List;
import com.db4o.*;<o:p></o:p>
import com.db4o.query.Constraint;<o:p></o:p>
import com.db4o.query.Query;<o:p> </o:p>
/* @author gyc
*/<o:p></o:p>
public class Util {<o:p></o:p>
public final static String DB4OFILENAME = "formula1.db4o";
// 向对象数据库插入对象<o:p></o:p>
public static void storeObject(ObjectContainer db, Object obj) {db.set(obj);<o:p></o:p>
System.out.println("Stored-->: " + obj);<o:p></o:p>
}
// QBE方式检索对象数据库中所有对象数据<o:p></o:p>
public static ObjectSet retrieveAllObjectQBE(ObjectContainer db, Object obj) {<o:p></o:p>
return db.get(obj);<o:p></o:p>
}
// 遍历对象集<o:p></o:p>
public static void listResult(ObjectSet result) {<o:p></o:p>
System.out.println(result.size());<o:p></o:p>
while (result.hasNext()) {<o:p></o:p>
System.out.println(result.next());<o:p></o:p>
}<o:p></o:p>
} // 遍历LIST对象<o:p></o:p>
public static void listResult(java.util.List result) {<o:p></o:p>
System.out.println(result.size());<o:p></o:p>
for (int x = 0; x < result.size(); x++) {<o:p></o:p>
System.out.println(result.get(x));<o:p></o:p>
}<o:p></o:p>
} // Native Queries方式检索对象数据库中所有对象数据<o:p></o:p>
public static ObjectSet retrieveAllObject(ObjectContainer db, Class xls) {<o:p></o:p>
return db.get(xls);<o:p></o:p>
}
分享到:
相关推荐
一、db4o 安装和启动 db4o 的安装非常简单,只需要从官方网站下载最新的版本,并在 Eclipse 中新建 Java 项目,将 db4o 对象数据库引擎包 db4o-5.5-java5.jar 导入进项目。 db4o 支持多种版本的 JDK,因此可以根据...
### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源面向对象数据库系统。它提供了高效的数据存储和检索功能,支持多种数据类型,并且...
Db4o,全称为“Database for Objects”,是一个开源的对象数据库管理系统,主要应用于Java和.NET平台。这个项目专注于提供一种简单的方式来存储和检索Java对象,无需SQL或其他中间映射层。在“Db4o的简单操作项目”...
在db4o 8.0版本中,引入了多项增强功能和改进,以提升性能和用户体验。 ### 一、对象数据库基础 对象数据库与传统的关系型数据库不同,它不依赖于表格和列的结构,而是直接存储和检索对象实例。这使得对象数据库在...
db4o的目标是提供一种简单、高效的方式来处理数据,特别是在嵌入式系统和移动应用中,它的轻量级特性和高性能表现尤为突出。 **版本8.0** 是db4o的最后一个官方发布版本,意味着这个版本包含了db4o的所有最新特性和...
**对象数据库db4o详解** ...通过`DrawTools2005`这样的示例程序,开发者可以深入理解如何将db4o集成到实际项目中,提升开发效率。无论是学习还是实际开发,db4o都是一个值得探索的对象数据库解决方案。
db4o是一个专为Java和.NET开发者设计的开源、轻量级的纯面向对象数据库引擎,提供了一种简单易用的方式来实现对象持久化。这款数据库引擎已被验证具备优秀的性能,根据描述中的基准测试,db4o在与传统持久化方案的...
该书详细介绍了db4o的基础知识,包括如何安装和配置db4o环境,以及如何在Java项目中集成db4o。作者通过实例展示了如何创建、打开和关闭数据库,以及如何保存和检索对象。书中还涵盖了对象持久化的基本概念,解释了...
db4o广泛应用于嵌入式系统、移动应用和小型项目中。 **二、NQ(Native Queries)** NQ是db4o提供的一种原生查询机制,它允许开发者使用Java对象进行查询,而不是SQL语句。通过NQ,可以方便地实现对对象属性的匹配,...
这个标题暗示我们将讨论的是db4o与.NET Framework 3.5的集成和使用。 ### 1. 对象数据库 对象数据库与关系型数据库的主要区别在于,它存储和查询的是对象而非表格数据。db4o将对象的实例直接保存到数据库中,使得...
**db4o (Database for Objects) 是一个开源的、基于Java和.NET的面向对象数据库系统。它允许开发者直接在数据库中存储和检索Java或.NET对象,而无需传统的SQL查询语言,极大地简化了数据管理和持久化的流程。** 在...
- **db4o引擎**:db4o的核心是一个高性能的对象数据库引擎,能够直接存储和检索对象数据,无需复杂的转换过程。 - **对象持久化**:通过简单的API调用即可实现对象的存储和检索,极大地简化了开发工作。 - **事务...
这些资源可以帮助你更好地了解如何在实际项目中集成和使用DB4O。 在实际开发中,DB4O提供了强大的特性,如透明持久化、延迟加载、查询优化等,使得开发人员可以更专注于业务逻辑,而不是数据库交互的细节。不过,...
DB4o(Database for Objects)是一款开源的对象数据库...通过本实例,你可以了解到如何在VS2008环境中集成DB4o,进行对象数据库的开发和应用。在实际项目中,根据具体需求,合理运用DB4o能有效提高开发效率和系统性能。
7. **轻量级**:db4o的体积小,启动快速,适合嵌入式系统和移动应用。 8. **可扩展性**:db4o允许用户自定义存储策略,如字段级别的加密或特定的索引类型。 9. **社区支持**:作为开源项目,db4o拥有活跃的开发者...
DB4O(Database for Objects)是一款开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者将Java或.NET对象直接存储到磁盘上,无需转换为传统的表和列的结构。DB4O的设计理念是简化数据存储,...
" 这意味着db4o具有轻量级、快速启动和运行的特点,对于那些需要快速实现数据存储功能的项目来说,是一个理想的选择。尤其是在开发桌面应用时,db4o可以极大地简化数据管理,因为它允许直接将对象存储和检索,而无需...
db4o作为一个强大的开源对象导向数据库,解决了面向对象编程与关系型数据库之间的不兼容性,为开发者提供了直接、高效、轻量级的数据持久化解决方案。它的广泛应用和社区支持证明了其在简化开发流程、提高性能和跨...
Db4o,全称为“Database for Objects”,是一个开源的对象数据库系统,专为.NET和Java平台设计。它允许开发者直接在对象上进行数据操作,而无需传统的ORM(对象关系映射)层,简化了数据存储和检索的过程。这个...