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()方法
.......
}
对序列化对象的存储:
- public static void main(String[] args) {
- Environment myenv = null;
- Database db = null;
- Cursor cursor=null;
- try {
- EnvironmentConfig envconfig = new EnvironmentConfig();
- envconfig.setAllowCreate(true);
- envconfig.setReadOnly(false);
- //要在C盘创建bdb文件
- myenv = new Environment(new File("c://bdb"), envconfig);
- DatabaseConfig dbconfig = new DatabaseConfig();
- dbconfig.setAllowCreate(true);
- dbconfig.setReadOnly(false);
- dbconfig.setSortedDuplicates(false);
- db = myenv.openDatabase(null, "book", dbconfig);
- //用来保存类存储信息
- Database myclassdb=myenv.openDatabase(null, "myclassdb", dbconfig);
- //创建catalog
- StoredClassCatalog classCatalog =new StoredClassCatalog(myclassdb);
- //创建绑定对象
- EntryBinding dataBinging=new SerialBinding(classCatalog,BookSer.class);
- DatabaseEntry thekey=new DatabaseEntry("mydata".getBytes("utf-8"));
- DatabaseEntry thedata=new DatabaseEntry();
- BookSer book=new BookSer();
- book.setBookId(1);
- book.setBookName("php web");
- book.setBookAuthor("三毛");
- book.setBookPrice(new Float(23.00));
- book.setBookPage(687);
- book.setBookDesc("php web php web");
- dataBinging.objectToEntry(book, thedata);
- db.put(null, thekey, thedata);
- OperationStatus status=db.get(null, thekey, thedata, LockMode.DEFAULT);
- if(status==OperationStatus.SUCCESS){
- BookSer b=(BookSer) dataBinging.entryToObject(thedata);
- System.out.println(b.getBookId()+" "+b.getBookName()+" "+b.getBookPrice());
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (db != null) {
- db.close();
- }
- if (myenv != null) {
- myenv.cleanLog();
- myenv.close();
- }
- } catch (Exception e2) {
- }
- }
- }