WEB开发网
开发学院软件开发Java 开源面向对象数据库 db4o 之旅,第 3 部分: 深入d... 阅读

开源面向对象数据库 db4o 之旅,第 3 部分: 深入db4o

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 修改数据是如此的简单,通过 NQ 查询出 People 对象,开源面向对象数据库 db4o 之旅,第 3 部分: 深入db4o(2),接着修改其地址,最后保存即可,为了方便,他还是决定重新更换为本地牌照,现在我们来看看修改是否成功, 打开 ObjectManager ,如图 1 所示

修改数据是如此的简单,通过 NQ 查询出 People 对象,接着修改其地址,最后保存即可。现在我们来看看修改是否成功, 打开 ObjectManager ,如图 1 所示,我们可以看到数据库里的用户数据已经更新了。

图1. 修改地址
开源面向对象数据库 db4o 之旅,第 3 部分: 深入db4o

查看原图(大图)

与本系列文章第二部分不同的是,我们利用 ObjectSet<People> result 来获取返回结果,而不是 List<People> list。查阅 ObjectSet 的 API 我们发现 ObjectSet 实际上继承了 java.util.List 和 java.util.Iterator。为什么要继承两个接口?这是由于 db4o 为了方便开发者而有意这样设计的,db4o 的设计目标就是轻量级,这样的继承方式为 ObjectSet 提供了多种特性,而无需开发者在多个集合接口之间转换。

场景二

让我们考虑下面这个场景:
由于工作原因,“张三”要离开省会去其他城市发展,他的汽车也要在那里使用,为了方便,他还是决定重新更换为本地牌照。

这次我们几乎和场景一采用同样的代码,但结果却不同(清单2):

清单2. 修改地址和车牌(不成功)

package com; 
 
import bo.People; 
 
import com.db4o.Db4o; 
import com.db4o.ObjectContainer; 
import com.db4o.ObjectSet; 
import com.db4o.query.Predicate; 
 
public class DB4OTest{ 
 
 public static void main(String[] args){ 
 //打开数据库 
 ObjectContainer db = Db4o.openFile("auto.yap"); 
 try{ 
  ObjectSet<People> result = db.query(new Predicate<People>() { 
    public boolean match(People people) { 
      return people.getName().equals("张三"); 
    } 
  }); 
  People people = result.next(); 
  //修改地址 
  people.setAddress("绵阳市xx区xxx号"); 
  //修改车牌号 
  people.getAutoInfoList().get(0).setLicensePlate("川B00000"); 
  db.set(people); 
 }finally{ 
  //关闭连接 
  db.close(); 
 } 
 } 
} 

上一页  1 2 3 4 5  下一页

Tags:开源 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接