四、BDB JE學習(對java中內置對象的存儲)

 對不同類型的數據處理

DatabaseEntry來綁定基本的JAVA數據類型,主要有StringCharacterBooleanByteShortIntegerLongFloatDouble.

還是要在你的D盤中創建bdb文件夾。

例子:

 

  1. package test; 
  2. import java.io.File; 
  3. import java.io.UnsupportedEncodingException; 
  4. import com.sleepycat.bind.EntityBinding; 
  5. import com.sleepycat.bind.EntryBinding; 
  6. import com.sleepycat.bind.tuple.LongBinding; 
  7. import com.sleepycat.bind.tuple.TupleBinding; 
  8. import com.sleepycat.je.Database; 
  9. import com.sleepycat.je.DatabaseConfig; 
  10. import com.sleepycat.je.DatabaseEntry; 
  11. import com.sleepycat.je.DatabaseException; 
  12. import com.sleepycat.je.Environment; 
  13. import com.sleepycat.je.EnvironmentConfig; 
  14. import com.sleepycat.je.EnvironmentLockedException; 
  15. import com.sleepycat.je.LockMode; 
  16. import com.sleepycat.je.OperationStatus; 
  17. /** 
  18.  * 對java中的內置對象的存儲 
  19.  * @author Administrator 
  20.  * 
  21.  */ 
  22. public class MyTest { 
  23.  public static void main(String[] args) { 
  24.   Environment env=null
  25.   Database db = null
  26.   EnvironmentConfig envconfig=new EnvironmentConfig(); 
  27.   envconfig.setAllowCreate(true); 
  28.   try { 
  29.    env=new Environment(new File("D://bdb"),envconfig); 
  30.    DatabaseConfig dbconfig=new DatabaseConfig(); 
  31.    dbconfig.setAllowCreate(true); 
  32.    db=env.openDatabase(null"dbac.db", dbconfig); 
  33.    String key="mykey"
  34.    DatabaseEntry thekey=new DatabaseEntry(); 
  35.    thekey.setData(key.getBytes("utf-8")); 
  36.     
  37.    Long value=new Long(123456); 
  38.    DatabaseEntry thevalue=new DatabaseEntry(); 
  39.    EntryBinding myBinging=TupleBinding.getPrimitiveBinding(Long.class); 
  40.    myBinging.objectToEntry(value, thevalue); 
  41.    //LongBinding myLongBinging=(LongBinding)TupleBinding.getPrimitiveBinding(Long.class); 
  42.    //myLongBinging.objectToEntry(value, thevalue); 
  43.    db.put(null, thekey, thevalue); 
  44.    DatabaseEntry valueEntry = new DatabaseEntry(); 
  45.    OperationStatus status= db.get(null, thekey, valueEntry, LockMode.DEFAULT); 
  46.    if(status==OperationStatus.SUCCESS){ 
  47.     //Long number=myLongBinging.entryToObject(valueEntry); 
  48.     Long number=(Long) myBinging.entryToObject(valueEntry); 
  49.     System.out.println(env.getDatabaseNames()); 
  50.     System.out.println(number); 
  51.    } 
  52.   } catch (EnvironmentLockedException e) { 
  53.    e.printStackTrace(); 
  54.   } catch (Exception e) { 
  55.    e.printStackTrace(); 
  56.   } finally
  57.    if(db!=null){ 
  58.     try { 
  59.      db.close(); 
  60.     } catch (DatabaseException e) { 
  61.      e.printStackTrace(); 
  62.     } 
  63.    } 
  64.    if(env!=null){ 
  65.     try { 
  66.      env.cleanLog(); 
  67.      env.close(); 
  68.     } catch (DatabaseException e) { 
  69.      e.printStackTrace(); 
  70.     } 
  71.    } 
  72.   } 
  73.  } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章