1.DB4O版本:6.4,ObjectManager版本7.2
因为之前创建数据库的时候同时进行检索,可以是这个原因经常导致database locked异常,
以为是DB4O版本的问题,之前是7.4,ObjectManager打不开yap文件。
现在这个版本可以了。估计是跟Server2003的文件的只读性有关。我后来该了文件只读属性,
现在可以了。估计跟DB4O版无关。
2.创建数据库,保存对象
创建java project,导入db4o-6.4.54.11278-java5.jar到项目build path。
package com.firstdb4o.test;
import java.io.File;
import com.db4o.Db4o; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import com.firstdb4o.entity.Address; import com.firstdb4o.entity.Customer;
public class Test {
/** * @param args */ public static void main(String[] args) { ObjectContainer db = null; try{ db=Db4o.openFile("customer.yap"); Address addr=new Address("address2"); Customer cs=new Customer("persia2",addr); db.set(cs); }finally{ if(db!=null){ db.close(); } } }
}
|
ObjectContainer db=Db4o.openFile("
customer.yap");
创建该文件,若文件已经存在,则再次打开。
也可以指定路径:ObjectContainer db = Db4o.openFile("C:/myDb.yap");
3.查询:
package com.firstdb4o.test;
import java.io.File;
import com.db4o.Db4o; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import com.firstdb4o.entity.Address; import com.firstdb4o.entity.Customer;
public class Test {
/** * @param args */ public static void main(String[] args) { ObjectContainer db = null; try{ // File file=new File("customer.yap");
// String fullPath=file.getAbsolutePath();
// System.out.println("path:"+fullPath);
db = Db4o.openFile("customer.yap"); Customer example=new Customer("persia2"); ObjectSet set=db.get(example); Customer cust=(Customer)set.next(); System.out.println("query:"+cust.getAddress().getStreet()); // db.set(cs);
}finally{ if(db!=null){ db.close(); } } }
}
|
查询结果:
query:address2
阅读(564) | 评论(1) | 转发(0) |