五、BDB JE中对序列化对象的存储
2011-07-18 12:47
225 查看
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()方法
.......
}
对序列化对象的存储:
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) { } } }
相关文章推荐
- 五、BDB JE中对序列化对象的存储
- 六、BDB JE中对自定义对象的存储
- 六、BDB JE中对自定义对象的存储
- .net序列化与反序列化——提供多次存储对象集后读取不完全解决方案
- Jedis存储Java对象--Java序列化为byte数组方式
- java:对象序列化与反序列化(对象信息存储)
- Jedis存储Java对象--Java序列化为byte数组方式
- Jedis存储Java对象--Java序列化为byte数组方式
- Memcached中Perl序列化存储的对象PHP无法读取的解决
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
- Spark中将对象序列化存储到hdfs
- 将java对象存储到redis数据库(使用序列化和反序列化)
- GWT中如何将EMF对象存储为XMI/从XMI反序列化为对象
- 黑马程序员------IO流 操作字节数组的流对象,对象序列化,打印流,随机存储文件,合并流,管道流,操作基本数据类型的流对象
- PHP 对象的存储与传输(序列化 serialize 对象)
- LINUX应用技巧,序列化存储 Python 对象
- 【框架-MFC】CObject 继承对象的序列化存储与读取
- Memcached中Perl序列化存储的对象PHP无法读取的解决
- Python持久性管理——使用序列化存储Python对象
- php memcache 对象序列化,存储对象的方法