1.首先你需要创建一个可序列化对象

2.打开或创建你的database,你需要两个,一个用来存储你的数据,另外一个用来存储类信息。

3.实例化catalog类,这个时候你可以用com.sleepycat.bind.serial.StoredClassCatalog,来存储

你的类信息。

4.通过com.sleepycat.bind.serial.SerialBinding来绑定数据和类。

5.绑定并存储数据

序列化对象类:

public class BookSer implements Serializable {

 private int bookId;
 private String bookName;
 private String bookAuthor;
 private float bookPrice;
 private int bookPage;
 private String bookDesc;
// get()和set()方法

.......

}

对序列化对象的存储:

 

  1. public static void main(String[] args) { 
  2.   Environment myenv = null
  3.   Database db = null
  4.   Cursor cursor=null
  5.   try { 
  6.    EnvironmentConfig envconfig = new EnvironmentConfig(); 
  7.    envconfig.setAllowCreate(true); 
  8.    envconfig.setReadOnly(false); 
  9.  
  10. //要在C盘创建bdb文件 
  11.    myenv = new Environment(new File("c://bdb"), envconfig); 
  12.    DatabaseConfig dbconfig = new DatabaseConfig(); 
  13.    dbconfig.setAllowCreate(true); 
  14.    dbconfig.setReadOnly(false); 
  15.    dbconfig.setSortedDuplicates(false); 
  16.    db = myenv.openDatabase(null"book", dbconfig); 
  17.    //用来保存类存储信息 
  18.    Database myclassdb=myenv.openDatabase(null"myclassdb", dbconfig); 
  19.    //创建catalog 
  20.    StoredClassCatalog classCatalog =new StoredClassCatalog(myclassdb); 
  21.    //创建绑定对象 
  22.    EntryBinding dataBinging=new SerialBinding(classCatalog,BookSer.class); 
  23.    DatabaseEntry thekey=new DatabaseEntry("mydata".getBytes("utf-8")); 
  24.    DatabaseEntry thedata=new DatabaseEntry(); 
  25.    BookSer book=new BookSer(); 
  26.    book.setBookId(1); 
  27.    book.setBookName("php web"); 
  28.    book.setBookAuthor("三毛"); 
  29.    book.setBookPrice(new Float(23.00)); 
  30.    book.setBookPage(687); 
  31.    book.setBookDesc("php web php web"); 
  32.    dataBinging.objectToEntry(book, thedata); 
  33.    db.put(null, thekey, thedata); 
  34.    OperationStatus status=db.get(null, thekey, thedata, LockMode.DEFAULT); 
  35.    if(status==OperationStatus.SUCCESS){ 
  36.     BookSer b=(BookSer) dataBinging.entryToObject(thedata); 
  37.     System.out.println(b.getBookId()+"   "+b.getBookName()+"    "+b.getBookPrice()); 
  38.    } 
  39.   } catch (Exception e) { 
  40.    e.printStackTrace(); 
  41.   } finally { 
  42.    try { 
  43.     if (db != null) { 
  44.      db.close(); 
  45.     } 
  46.     if (myenv != null) { 
  47.      myenv.cleanLog(); 
  48.      myenv.close(); 
  49.     } 
  50.    } catch (Exception e2) { 
  51.    } 
  52.   } 
  53.  }