WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 db4o 指南: 查询,更新和一... 阅读

面向 Java 开发人员的 db4o 指南: 查询,更新和一致性

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 清单 4. 插入前进行查询//...asbeforeObjectContainerdb=null;try{db=Db4o.openFile("persons.data");...//WewanttoaddBrianGoetztothedatabase;ishealreadyt

清单 4. 插入前进行查询

        // ... as before 
    ObjectContainer db = null; 
    try 
    { 
      db = Db4o.openFile("persons.data"); 
       
      ... 
 
      // We want to add Brian Goetz to the database; is he already there? 
      if (db.get(new Person("Brian", "Goetz", 0).hasNext() == false) 
      { 
        // Nope, no Brian Goetz here, go ahead and add him 
        db.set(new Person("Brian", "Goetz", 39)); 
        db.commit(); 
      } 
    } 

在这个特定例子中,假设系统中 Person 的惟一性是其姓名的组合。因此,当在数据库中搜索 Brian 时,只需要对 Person 实例查找这些属性。(或许几年前已经添加过 Brain —— 当时他还不到 39 岁。)

如果希望修改数据库中的对象,那么从容器中检索对象,使用某种方式进行修改,然后将其存储回数据库即可,如图 5 所示:

清单 5. 更新对象

        // ... as before 
    ObjectContainer db = null; 
    try 
    { 
      db = Db4o.openFile("persons.data"); 
       
      ... 
 
      // Happy Birthday, David Geary! 
      if ((ObjectSet set = db.get(new Person("David", "Geary", 0))).hasNext()) 
      { 
        Person davidG = (Person)set.next(); 
        davidG.setAge(davidG.getAge() + 1); 
        db.set(davidG); 
        db.commit(); 
      } 
      else 
        throw new MissingPersonsException( 
          "David Geary doesn't seem to be in the database"); 
    } 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:面向 Java 开发

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