Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188239
  • 博文数量: 106
  • 博客积分: 3810
  • 博客等级: 中校
  • 技术积分: 1007
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 13:35
文章分类

全部博文(106)

文章存档

2014年(17)

2011年(5)

2010年(75)

2009年(9)

我的朋友

分类: Java

2010-01-23 10:20:00

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) |
给主人留下些什么吧!~~

chinaunix网友2010-04-09 16:37:07

我也在研究db4o 我的objectmanager 7.2 也是从来没有能用过,报132错误,很郁闷,我用的是操作系统是 ubuntu ,语言是 java 工具 是 mclipse QQ: 648638893 ,希望和你联系,资讯下