`
otom31
  • 浏览: 230366 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

db4o对象型数据库学习笔记

阅读更多

db4o(database for object ) 是一个开源的,面向对象的数据库.

现在有很多的在传统数据库上建立持久关系和ORM影射的工具.

对于ORM,有很多中说法:

"业界对持久存储领域的追求从未停止过,为了更方便、更容易地用对象表达我们的思维,开源领域和商业领域都涌现了许多新技术, ORM 的出现恰恰说明了这点。最近一年,业界也在反思,到底 ORM 给我们带来的是便利还是麻烦。矛头指向大名鼎鼎的 Hibernate ,纷纷议论其性能问题,大家似乎要达成这样的共识:“在业务逻辑复杂的地方用 SP ,而一般的 CRUD 还是 Hibernate ”,就连全球知名的 BearingPoint 也有类似看法。"

呵呵,db4o 确实一个新的直接应用了orm的数据库...

花了半天时间,终于把最基本的应用搞懂了,最兴奋的莫过于:他不但支持 本地访问,还支持网络访问,嵌入式开发.

而且是开源的,免费的.for JDKV1.4的总大小只有600多k,呵呵正好应用于我想搞的一个手机软件上,哈哈~~~

不多说了,学习笔记记下来:

1-  数据库下载地址: www.db4o.com 这个是官方网站,上去找最新的版本吧

2-  object manager:对象管理器,这个是数据库管理的UI工具,也在 www.db4o.com 里有下载,有两种版本的

3-  经过测试 db4o的效率比普通的 ORM工具要高出很多:

"db4o 官方公布的基准测试数据,db4o 比采用 Hibernate/MySQL 方案在某些测试线路上速度高出 44 倍之多!并且安装简单,仅仅需要 400Kb 左右的 .jar 或 .dll 库文件。"

下面还是给出最简单的测试学习代码:

呵呵,非常简单的,而且支持3种高效率的标准查询方式!

java 代码
  1. public class TestDb4o {   
  2.     
  3.  private static ObjectContainer db = null;   
  4.   
  5.     
  6.  public static void main(String args[]){   
  7.   openLocalDb();   
  8.   System.out.println("--running--");   
  9.   //queryForQBE(db);   
  10.   //queryForSODA(db);   
  11.   queryForNQ(db);   
  12.   closeDb();   
  13.   //openServer(1233,"admin","1");   
  14.   //System.out.println("--running--");   
  15.  }   
  16.     
  17.  public static void queryForNQ(ObjectContainer ocdb){   
  18.   List list = db.query(   
  19.        new Predicate() {   
  20.         public boolean match(Car car) {   
  21.          return car.getColor().equals("BLUE");   
  22.         }   
  23.        }   
  24.        );   
  25.   outPutList(list);   
  26.  }   
  27.     
  28.   
  29.  public static void queryForSODA(ObjectContainer ocdb){   
  30.   Query q  = ocdb.query();   
  31.      
  32.   q.constrain(Car.class);   
  33.   q.descend("name").constrain("宝马");   
  34.   List l = q.execute();   
  35.   outPutList(l);   
  36.  }   
  37.   
  38.  /**  
  39.   * QBE查询方式 : Query By Example  
  40.   * @param ocdb  
  41.   */  
  42.  public static void queryForQBE(ObjectContainer ocdb){   
  43.   Car car = new Car();   
  44.   car.setColor("BLUE");   
  45.   List l = ocdb.get(car);   
  46.   outPutList(l);   
  47.  }   
  48.     
  49.  public static void outPutList(List list){   
  50.   for(Iterator it=list.iterator();it.hasNext();){   
  51.    Car c = (Car)it.next(); //5.0 才支持自动装箱   
  52.    System.out.println(c);   
  53.   }   
  54.  }   
  55.     
  56.  /**  
  57.   * 启动服务  
  58.   * @param port  
  59.   * @param userName  
  60.   * @param password  
  61.   */  
  62.  public static void openServer(int port,String userName,String password){   
  63.   ObjectServer server=Db4o.openServer("D:/DB4O_TDB01.yap",port);   
  64.   server.grantAccess(userName,password);   
  65.   server.openClient();   
  66.  }   
  67.     
  68.  /**  
  69.   * 打开服务  
  70.   * @param IPaddress  
  71.   * @param userName  
  72.   * @param password  
  73.   * @param port  
  74.   */  
  75.  public static void openClient(String IPaddress,String userName,String password,int port){   
  76.   try {   
  77.    db=Db4o.openClient(IPaddress,port,userName,password);   
  78.   } catch (IOException e) {   
  79.    e.printStackTrace();   
  80.   }   
  81.  }   
  82.     
  83.     
  84.  /**  
  85.   * 打开本地库  
  86.   *  
  87.   */  
  88.  public static void openLocalDb(){   
  89.   db = Db4o.openFile("D:/DB4O_TDB01.yap");   
  90.  }   
  91.     
  92.  /**  
  93.   * 关闭库  
  94.   *  
  95.   */  
  96.  public static void closeDb(){   
  97.   if(db!=null) db.close();   
  98.  }   
  99. }   
分享到:
评论
4 楼 carlosbdw 2007-08-13  
为什么不把所有代码都贴出来呢?编译都过不去
3 楼 icefire 2007-05-22  
感觉确实爽!!
不过学习它还是得花上不少时间的!
不过上手很快!
2 楼 yatwql 2007-05-21  
真的很好么? 有些以前用Visual Foxpro的感觉.
1 楼 mewleo 2007-05-21  
使用了对象数据库以后,真的不想使用DAO模式了,把本来
简单的持久操作复杂化了。最近写了一个框架OMM为了配合
Db4o的使用,把持久层封装到一件装备中,类似ejb的cmp,然后
给他在需要的时候穿上,呵呵,比ejb要简单许多。

对象,你喜欢极品装备吗?
http://www.iteye.com/topic/79536
实现DDD装备模型
http://www.iteye.com/topic/81086

相关推荐

    db4o面向对象数据库教程的入门教程

    ### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源...希望通过对这些知识点的学习,能够帮助大家更好地理解和使用db4o面向对象数据库。

    DB4O面向对象数据库使用指南

    DB4O面向对象数据库使用指南

    对象数据库db4o对象数据库db4o

    **对象数据库db4o详解** 对象数据库是一种新型的数据库管理系统,与传统的关系型数据库不同,它直接存储和管理对象,而不是将对象转换为表格...无论是学习还是实际开发,db4o都是一个值得探索的对象数据库解决方案。

    db4o面对对象数据库

    ### db4o面向对象数据库知识点解析 #### 一、db4o简介与特点 db4o是一款完全面向对象的数据库管理系统,它以其简洁高效的特点而受到开发者的喜爱,尤其适用于初学者。作为一款轻量级的对象数据库,db4o支持直接...

    面向 Java 开发人员的 db4o 指南: 第 3 部分:db4o 中的数据库重构

    **db4o(Database for Objects)**是一款开源的对象数据库,专为Java开发人员设计,它允许开发者直接在数据库中存储和检索Java对象,无需进行传统的SQL映射。本指南的第三部分将深入探讨如何在db4o中进行数据库重构...

    db4o使用指南

    db4o 的安装非常简单,只需要从官方网站下载最新的版本,并在 Eclipse 中新建 Java 项目,将 db4o 对象数据库引擎包 db4o-5.5-java5.jar 导入进项目。 db4o 支持多种版本的 JDK,因此可以根据需要选择合适的 JAR 包...

    db4o-8.0-java

    **db4o(Database for Objects)** 是一个开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者直接在Java或.NET平台上存储和检索Java对象或.NET对象,无需进行SQL查询或者映射过程。db4o的...

    DB4o 将一个对象保存到文件中,然后查询读取

    DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者将Java或.NET平台上的对象直接存储到数据库中,而无需进行SQL映射。在本文中,我们将深入探讨如何利用DB4o将一个对象保存到文件中,然后进行...

    开源面向对象数据库 db4o 之旅

    1.介绍了面向对象数据库 db4o 的基本特性,并且与传统关系型数据库以及 OR 映射技术做了比较分析,读者可以体验到 db4o 的全新的面向对象存储的理念,并且给出了性能测试数据。 2.介绍了面向对象数据库 db4o 的安装...

    db4o-8.0.236.16058.zip 对象数据库,内存数据库jar包,两个

    **db4o 8.0 对象数据库** db4o(Database for Objects)是一种开源的对象数据库管理系统(Object-Relational Mapping, ORM),它允许开发者直接将Java对象持久化到数据库中,无需传统的SQL语句。这个数据库系统的...

    DB4o 数据库实例

    DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接将对象持久化到数据库中,无需进行额外的映射或者数据访问层(DAL)的开发。这个数据库系统设计的目标是简化对象关系映射(ORM)的过程,...

    面向Java开发人员的db4o指南db4o中的数据库重构.doc

    面向Java开发人员的db4o指南db4o中的数据库重构

    DB4o学习笔记 对象的SQL基本操作

    DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接在内存中以对象的形式存储、查询和检索数据,无需转换为关系型数据库的表格形式。在本笔记中,我们将深入探讨DB4o的对象SQL基本操作,...

    java数据库(db4o)

    对于学习和理解对象数据库以及如何在Java应用程序中实现对象持久化的开发者来说,db4o仍然是一个有价值的参考资料。在压缩包中的“db4o”文件可能包含了db4o的库文件、示例代码、文档等资源,可以帮助深入理解和使用...

    db4o8.0以及db4o中文指南

    **db4o 8.0 详解及中文指南** db4o(Database for Objects)是一款开源的对象数据库...通过深入学习db4o 8.0及其中文指南,开发者可以充分利用对象数据库的优势,提高开发效率,并为项目带来更高效的数据管理方案。

    Db4o的简单操作项目

    Db4o,全称为“Database for Objects”,是一个开源...尽管Db4o已经停止了官方支持,但它的设计理念和模式对于理解对象数据库的概念仍然很有价值,特别是对于那些希望避开传统关系型数据库复杂性的小型项目或原型开发。

    DB4O笔记+常用JAR包

    DB4O,全称为“Database for Objects”,是一个开源的对象数据库管理系统(ODBMS),它允许开发者直接将Java或.NET对象持久化到磁盘上,而无需使用传统的关系型数据库中的SQL语句。DB4O提供了简单、高效且灵活的数据...

    db4o 权威指南

    《db4o 权威指南》是一本深入探讨db4o这一开源面向对象数据库系统的专业书籍,对于Java开发者来说尤其有价值。db4o是Database for Objects的缩写,它允许开发者以自然、直观的方式存储和检索Java对象,无需编写SQL...

Global site tag (gtag.js) - Google Analytics