package com.berkely.db;
import java.io.File;
import java.io.UnsupportedEncodingException;
import com.sleepycat.bind.EntryBinding;
import com.sleepycat.bind.tuple.TupleBinding;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.LockMode;
import com.sleepycat.je.OperationStatus;
public class BerkelyDBTeat {
private static final String CHART = "UTF-8";
/**
* @param args
*/
public static void main(String[] args) {
//创建EnvironmentConfig
EnvironmentConfig enConfig = new EnvironmentConfig();
//设置Environment属性
enConfig.setAllowCreate(true);
Database db = null;
try {
File file = new File("db/myTest");
if(!file.exists()){
file.mkdirs();
}
//创建Environment
Environment en = new Environment(new File("db/myTest"), enConfig);
//创建DatabaseConfig
DatabaseConfig dbConfig = new DatabaseConfig();
//设置DatabaseConfig属性
dbConfig.setAllowCreate(true);
//创建Database
db = en.openDatabase(null, "mydb", dbConfig);
//向数据库中插入字符数据
String key = "姓名";
String data = "张三";
DatabaseEntry keyEntry = new DatabaseEntry(key.getBytes(CHART));
DatabaseEntry dataEntry = new DatabaseEntry(data.getBytes(CHART));
db.put(null, keyEntry, dataEntry);
System.out.println("put String data into db success! key: "+key+", data: "+data);
//取字符数据
DatabaseEntry getStringDataEntry = new DatabaseEntry();
if(db.get(null, keyEntry, getStringDataEntry, LockMode.DEFAULT) == OperationStatus.SUCCESS){
byte[] getData = getStringDataEntry.getData();
System.out.println("get data from db success! key: "+key+", get data: "+new String(getData,CHART));
} else{
System.out.println("there is no data for key "+key);
}
//Bind api for数字和字符类型
//向数据库中插入Long型数据
String longKey = "Long类型数据";
Long longData = 1000L;
EntryBinding longBind = TupleBinding.getPrimitiveBinding(Long.class);
DatabaseEntry longKeyEntry = new DatabaseEntry(longKey.getBytes(CHART));
DatabaseEntry longDatabaseEntry = new DatabaseEntry();
longBind.objectToEntry(longData, longDatabaseEntry);
db.put(null, longKeyEntry, longDatabaseEntry);
System.out.println("put Long data into db success! key: "+longKey+", data: "+longData);
//取Long型数据
DatabaseEntry getLongDataEntry = new DatabaseEntry();
if(db.get(null, longKeyEntry, getLongDataEntry, LockMode.DEFAULT) == OperationStatus.SUCCESS){
Long getLongData = (Long)longBind.entryToObject(getLongDataEntry);
System.out.println("get data from db success! key: "+longKey+", get data: "+getLongData);
} else{
System.out.println("there is no data for key "+longKey);
}
} catch (DatabaseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(db != null){
try {
db.close();
} catch (DatabaseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
Berkely DB使用实例
最新推荐文章于 2018-04-18 15:51:36 发布