public void setUp(String path, long cacheSize) { EnvironmentConfig envConfig = new EnvironmentConfig(); envConfig.setAllowCreate(true); envConfig.setCacheSize(cacheSize); try { env = new Environment(new File(path), envConfig); } catch (EnvironmentLockedException e) { e.printStackTrace(); } catch (DatabaseException e) { e.printStackTrace(); } } public void open(String dbName) { DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setAllowCreate(true); User user = new User("bdb"); try { db = env.openDatabase(null, dbName, dbConfig); classDB = env.openDatabase(null, "classDB", dbConfig); classCatalog = new StoredClassCatalog(classDB); } catch (DatabaseException e) { e.printStackTrace(); } } public Object getObj(String key,Object obj) throws Exception { EntryBinding dataBinding = new SerialBinding(classCatalog,Object.class); DatabaseEntry keyEntry = new DatabaseEntry(key.getBytes("UTF-8")); DatabaseEntry dataEntry = new DatabaseEntry(); db.get(null, keyEntry, dataEntry, LockMode.DEFAULT); Object p = dataBinding.entryToObject(dataEntry); return p; } public boolean putObj(String key, Object value) throws Exception { String aKey = key; DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes("UTF-8")); User user = new User("asdfasdf"); EntryBinding dataBinding = new SerialBinding(classCatalog,User.class); DatabaseEntry dataEntry = new DatabaseEntry(); dataBinding.objectToEntry(user, dataEntry); OperationStatus status = db.put(null, theKey, dataEntry); if (status == OperationStatus.SUCCESS) { return true; } return false; } public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String userName; public User(){ } public User(String userName) { this.userName = userName; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }