db4o是一个开源的面向对象数据库,他实现了把对象持久化到数据库。db4o支持Java和.Net,这里介绍的是db4o for net。
和关系数据库一样,db4o也有数据文件,db4o数据文件扩展名为'yap'。db4o数据引擎由Db4objects.Db4o.dll组成.
db4o是怎么把对象保存到数据库的,举个简单的例子:
首先在项目里引用Db4objects.Db4o.dll
db4o学习笔记(一)    //定义一个学生类
db4o学习笔记(一)
    public class Student

 保存学生对象到数据库

db4o学习笔记(一)            //打开数据库文件Student.yap,如果不存在,会自动创建一个Student.yap文件
db4o学习笔记(一)
            IObjectContainer db=Db4oFactory.OpenFile("Student.yap");
db4o学习笔记(一)            School school
=new School("ustc","china");
db4o学习笔记(一)            Student student1
=new Student("Tom",20,school);
db4o学习笔记(一)            
try

db4o有一个管理工具叫Object Manager,是用Java写的,你可以通过Object Manager查看Student对象是否保存到数据库里。
和关系数据库一样,db4o也有自己的查询语言。分别是QBE(Query By Example),NQ(Native Query)和SODA(Simple Object Database Access).

QBE(Query By Example)
QBE查询方式先创建一个Template对象,通过和Template比较返回匹配的全部对象,例如:

db4o学习笔记(一)            //创建Template对象
db4o学习笔记(一)
            Student template=new Student("Tom",0,null);
db4o学习笔记(一)            
//查询和Template匹配的全部对象
db4o学习笔记(一)
            IObjectSet result=db.Get(template);
db4o学习笔记(一)            ListResult(result);
db4o学习笔记(一)

NQ(Native Query)
NQ查询方式可以用你熟悉的编程语言进行数据库查询,例如:
db4o学习笔记(一)    //定义一个继承自Predicate的类,Predicate是Native Query的基类
db4o学习笔记(一)
    public class ComplexQuery:Predicate

SODA(Simple Object Database Access)
SODA ,简单对象数据库访问。SODA 是 db4o 最底层的查询 API

db4o学习笔记(一)    //构造查询对象
db4o学习笔记(一)
    IQuery query=db.Query();
db4o学习笔记(一)    
//设置约束实例
db4o学习笔记(一)
    query.Constrain(typeof(Student));
db4o学习笔记(一)    
//设置约束实例的字段和约束条件
db4o学习笔记(一)
    query.Descend("name").Constrain("Tom");
db4o学习笔记(一)    
//查询对象
db4o学习笔记(一)
    IObjectSet result=query.Execute();
db4o学习笔记(一)    ListResult(result);
db4o学习笔记(一)

相关文章: