五、BDB JEにおけるシーケンス化対象の記憶


1.まずシーケンス可能なオブジェクトを作成する必要があります
2.databaseを開いたり作成したりするには、2つ、1つはデータを格納し、もう1つはクラス情報を格納する必要があります.
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.  }