DB4O印象
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 1670
学习关系型数据库很多年了,一个偶然的机接触到了面向对象数据库DB4O,感觉很新鲜也很有想学的冲动,于是到网上搜罗了一下,也没有发现什么系统介绍DB4O的资料文摘,最后在官网上找到了db4o-refe

学习关系型数据库很多年了,一个偶然的机接触到了面向对象数据库DB4O,感觉很新鲜也很有想学的冲动,于是到网上搜罗了一下,也没有发现什么系统介绍DB4O的资料文摘,最后在官网上找到了db4o-reference-net.pdf,无赖英语不给力,只好费费劲看看,纯属学习笔记,供以后翻阅,如有志同道合者可一起学习进步。

DB4O是一个面向对象数据库,使用起来很方便,对于.NET项目只要添加一个动态链接库的引用就可以使用了,只有几百KB的大小。可能很多人都想知道它的性能如何,据网上一些资料显示,还是非常可观的,在一定数据量量的范围内性能优于某些关系数据库。Intel,空客等都有应用。

在学习DB4O前一些基本的概念我们要有所了解,理解他们对我们理解DB4O的行为很有帮组。其中有些特性是数据库都有的特性 比如数据库事物,ACID属性等。DB4O通过标识来管理对象,这个意味着我们不需要为我们要保存的对象定义额外的Id字段。而有一些概念则是DB4O所特有的呢,比如激活机制,该机制控制那些对象应该从数据库文件中加载到内存中,更新删除对象也适用于该该机制。下面开始我们的DB4O学习。

下载DB4O

首先从官方网站上下载DB4O。官网上版本比如正式版本,测试版本,还有以前比较稳定的老版本等,每一个版本都是对应于特定的.net版本,可以下载zip压缩文件也可以现在MSI安装文件,如果是压缩文件请接压缩,安装文件请直接安装

查看压缩包的内容

db4o-folder/bin:包含数据的数据库的引擎及其支持链接库,对应不同的.net框架有自己子文件夹

db4o-folder/doc:包含所有的DB4O文档。完整整的API,帮助文档以及参考文档

        db4o-folder/omn:对象管理器的安装文件

        db4o-folder/src:所有的源文件

往项目中添加DB4O引用

下载下来解压缩后,你就可以使用DB4O了。它的核心就是一个程序集Db4objects.Db4o.dll。其它的程序集提供一些额外的功能。使用的时候要添加需要的程序集到你的项目中去,接下来看看怎么在Visual Studio中使用它。

打开现有项目或者新建一个项目

在解决方案上右击“引用”

选择“添加引用”

选择“浏览”

导航到DB4O的对应目录,选择对应的程序集

确定

现在我们可以再项目中使用DB4O

  现在我们来看看最基本的操作,要使用DB4O必须要有一个访问数据库的接口,暂且叫做对象容器吧,你可以打通过把DB4O文件名称传给对象容器工厂来获取这个对象容器。通常在应用程序启动的时候要打开获取对象容器,关闭的时候关闭这个对象容器。

   //获取对象容器

   using (IObjectContainer container = Db4oEmbedded.OpenFile("databaseFile.db4o"))

   {

   //使用对象容器保存修改删除查询对象

   }

有了对象容器就相当于打开了对象数据库,接下来可以对对象进行增删改查。

保存对象

使用DB4O保存对象是一件极其简单的事情,打开数据库也就是获取一个对象容器,把要保存的对象传给对象容器的Store方法就可以了,剩下的工作DB4O会帮你完成。它会通过反射读取类的元数据以及要保存对象的值并存储对象。

  using (IObjectContainer container = Db4oEmbedded.OpenFile("databaseFile.db4o"))

    {

    Pilot pilot = new Pilot("Joe");

    container.Store(pilot);

}

查询对象

查询一个对象同样很简单,有几种不同的查询方式可供选择,每种方式都有自己的优点。其中最方便的查询方式就是使用Linq

     using (IObjectContainer container = Db4oEmbedded.OpenFile("databaseFile.db4o"))

       {

       var pilots = from Pilot p in container

       where p.Name == "Joe"

       select p;

      foreach (var pilot in pilots)

     {

     Console.Out.WriteLine(pilot.Name);

     }

 }

更新对象

首先你要查询出要更改的对象,然后对象进行更改,最后重新保存进数据库就OK了,是不是很容易?

    using (IObjectContainer container = Db4oEmbedded.OpenFile("databaseFile.db4o"))

     {

       var pilot = (from Pilot p in container

       where p.Name == "Joe"

       select p).First();

       pilot.Name = "New Name";

      // update the pilot

      container.Store(pilot);

}

删除对象

使用delete操作删除对象。

   using (IObjectContainer container = Db4oEmbedded.OpenFile("databaseFile.db4o"))

    {

    var pilot = (from Pilot p in container

    where p.Name == "Joe"

    select p).First();

    container.Delete(pilot);

}

以上就完成了DB4O最基础的一些操作,咋看起来这么简单呢。

本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2