开发步骤:
1.打开对象数据库:
ObjectContainer db = Db4o.openFile(Util.DB4OFILENAME);//Util.DB4OFILENAME为DB4O数据库名.ObjectContainer //db为对象容器,即数据库对象
2.向对象数据库插入对象
public static void storeFirstPilot(ObjectContainer db) {
Pilot pilot1 = new Pilot("tom", 55);
db.set(pilot1);
System.out.println("Stored-->" + pilot1);
}//向对象数据库插入对象
//向对象数据库插入对象
public static void storeObject(ObjectContainer db, Object obj) {
db.set(obj);
System.out.println("Stored Object ---->" + obj);
}
3.检索对象数据
//QBE方式检索对象数据库中所有数据
public static void retrieveAllPilotQBE(ObjectContainer db) {
Pilot proto = new Pilot(null, 0);
ObjectSet result = db.get(proto);
listResult(result);
}
//Native Queries方式检索所有数据
public static void retrieveAllPilots(ObjectContainer db) {
ObjectSet result = db.get(Pilot.class);
listResult(result);
}
//根据对象STRING字段检索
public static void retrievePilotByName(ObjectContainer db) {
Pilot pilot = new Pilot("tom", 0);
ObjectSet os = db.get(pilot);
listResult(os);
}
//根据对象INT字段检索
public static void retrievePilotByInt(ObjectContainer db) {
Pilot pilot = new Pilot(null, 55);
ObjectSet os = db.get(pilot);
listResult(os);
}
//根据对象STRING字段检索后,增加INT值
public static void updateObject(ObjectContainer db) {
ObjectSet os = db.get(new Pilot("tom", 0));
Pilot pi = (Pilot) os.next();
pi.addPoints(100);
db.set(pi);
System.out.println("added for --->" + pi);
retrieveAllPilots(db);
}
//根据对象STRING字段检索后,删除对象
public static void deleteObjectByName(ObjectContainer db, String str) {
ObjectSet os = db.get(new Pilot(str, 0));
Pilot pi = (Pilot) os.next();
db.delete(pi);
System.out.println("Deleted--->" + pi);
retrieveAllPilots(db);
}
//QE方式检索对象
public static ObjectSet queryAllObjectByQE(ObjectContainer db, Class cls,
String field, String str) {
Query query = db.query();
query.constrain(cls);
query.descend(field).constrain(str);
ObjectSet os = query.execute();
return os;
}
public static ObjectSet queryObjectByQE(ObjectContainer db, Class cls,
String field, Integer x) {
Query query = db.query();
query.constrain(cls);
query.descend(field).constrain(x);
/*constrain:
词性及解释 Part of speech and defination
vt. 强迫, 限制, 关押
*/
return query.execute();
}
//否定方式QE检索
public static ObjectSet queryByNegation(ObjectContainer db, Class cls,
String field, String value) {
Query query = db.query();
query.constrain(cls);
query.descend(field).constrain(value).not();
/* descend:
词性及解释 Part of speech and defination
vi. 下降, 世代相传, 屈尊, 袭击
vt. 下降
【法】 把财产传给, 遗传
*/
return query.execute();
}
//conjunction方式QE检索
public static ObjectSet retrieveByConjunction(ObjectContainer db, Class xls,
Object obj1, Object obj2,
String f1, String f2) {
Query query = db.query();
query.constrain(xls);
Constraint constr = query.descend(f1).constrain(obj1);
query.descend(f2).constrain(obj2).and(constr);
/* conjunction:
词性及解释 Part of speech and defination
n. 连接词, 联合, 结合
【计】 合取
*/
return query.execute();
}
//Disjunction方式QE检索,即相当于SQL中的OR查询
public static ObjectSet retrieveByDisjunction(ObjectContainer db, Class xls,
String f1, Object value1,
String f2, Object value2) {
Query query = db.query();
query.constrain(xls);
Constraint constr = query.descend(f1).constrain(value1);
query.descend(f2).constrain(value2).or(constr);
/*Disjunction:
[] 词性及解释 Part of speech and defination
n. 分离, 分裂, 分断
*/
return query.execute();
}
//Comparison方式QE检索,即检索当f1字段值大于value1的对象数据
public static ObjectSet retrieveByComparison(ObjectContainer db,Class xls,String f1,Object value1)
{
Query query=db.query();
query.descend(f1).constrain(value1).greater();
/*comparison:
词性及解释 Part of speech and defination
n. 比较, 对照, 比喻
【经】 比较, 对比
*/
return query.execute();
以下是总结出来的DB4O主要对象图:
}
分享到:
相关推荐
1.介绍了面向对象数据库 db4o 的基本特性,并且与传统关系型数据库以及 OR 映射技术做了比较分析,读者可以体验到 db4o 的全新的面向对象存储的理念,并且给出了性能测试数据。 2.介绍了面向对象数据库 db4o 的安装...
**对象数据库db4o详解** 对象数据库是一种新型的数据库管理系统,与传统的关系型数据库不同,它直接存储和管理对象,而不是将对象转换为表格形式的数据。db4o(database for objects)是对象数据库的一种,它提供了...
DB4O面向对象数据库使用指南
### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源...希望通过对这些知识点的学习,能够帮助大家更好地理解和使用db4o面向对象数据库。
Db4o是一个面向对象的数据库系统,由db4objects公司开发,它支持Java和.NET平台,并采用双授权模式,即GPLv2和商业授权。在Android开发中,Db4o提供了一种替代传统关系型数据库如SQLite的方式,尤其是在面对面向对象...
db4o 是一个开源的面向对象数据库,能够轻松地将 Java 对象持久化到数据库中。本文将详细介绍 db4o 的安装、启动、查询方式、对象持久化、数据库文件结构、主要包结构等知识点。 一、db4o 安装和启动 db4o 的安装...
Java数据库db4o,全称为“Database for Objects”,是一款开源的对象数据库系统,专门设计用于Java和.NET平台。它提供了一种直接在对象模型上进行数据操作的方式,无需传统的ORM(对象关系映射)层,简化了开发过程...
DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接在内存中以对象的形式存储、查询和检索数据,无需转换为关系型数据库的表格形式。在本笔记中,我们将深入探讨DB4o的对象SQL基本操作,...
总结来说,"db4o-8.0-java" 是一个完整的db4o对象数据库解决方案,包含所有必要的组件,让Java开发者能够轻松地在自己的项目中实施对象数据库。源码、jar包、Eclipse插件和文档的提供,使得开发、调试和学习过程变得...
《db4o 权威指南》是一本深入探讨db4o这一开源面向对象数据库系统的专业书籍,对于Java开发者来说尤其有价值。db4o是Database for Objects的缩写,它允许开发者以自然、直观的方式存储和检索Java对象,无需编写SQL...
总结,DB4o是一款强大的对象数据库,它的主要优势在于简化了对象的持久化,提供了直观的查询方式,以及丰富的功能特性。通过本实例,你可以了解到如何在VS2008环境中集成DB4o,进行对象数据库的开发和应用。在实际...
DB4O是一个开源的面向对象数据库管理系统,特别适合于嵌入式系统。它为Java和.NET平台提供了强大的支持,使得开发者能够轻松地在资源受限的环境中管理和存储数据。 #### 嵌入式系统与数据管理的重要性 随着技术的...
Android开源数据库框架db4o是一个强大的对象数据库管理系统,专为Java和.NET平台设计,但在Android环境中也有广泛的应用。db4o提供了一种直接在内存或磁盘上存储对象的方式,无需传统的关系型数据库映射,这使得开发...
DB4O,全称为“Database for Objects”,是一个开源的、基于Java和.NET平台的面向对象数据库系统。它允许开发者直接将Java或.NET的对象存储到数据库中,无需进行SQL映射或者对象关系映射(ORM)。在标题中提到的...
### db4o面向对象数据库知识点解析 #### 一、db4o简介与特点 db4o是一款完全面向对象的数据库管理系统,它以其简洁高效的特点而受到开发者的喜爱,尤其适用于初学者。作为一款轻量级的对象数据库,db4o支持直接...
**db4o(Database for Objects)**是一款开源的对象数据库,专为Java开发人员设计,它允许开发者直接在数据库中存储和检索Java对象,无需进行传统的SQL映射。本指南的第三部分将深入探讨如何在db4o中进行数据库重构...
【面向对象的db4o指南】是一篇针对初学者的db4o数据库介绍,该文主要探讨了面向对象数据库db4o的基本特性和优势,并与传统的关系型数据库及ORM(对象关系映射)技术进行了对比分析。db4o是一款开源的对象数据库,它...