BDB 数据库开发实例
2012-12-27 20:40
127 查看
/**
*
*/
package cn.com.bdb;
import java.io.File;
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;
/**
* @author QG
*
* 2010-12-8 下午03:59:30 MyBerkeleyDB.java
*
* @since 1.0 @version 1.0
*
*/
public class MyBerkeleyDB {
private Environment env;
private Database db;
public MyBerkeleyDB() {
}
public void setDbUp(String path, long cacheSize) {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
envConfig.setCacheSize(cacheSize);
try {
env = new Environment(new File(path),envConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public void open(String dbName) {
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);
try {
db = env.openDatabase(null, dbName, dbConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public void close() {
try {
if(db != null) {
db.close();
}
if(env != null) {
env.close();
}
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public String get(String key) throws Exception {
DatabaseEntry queryKey = new DatabaseEntry();
DatabaseEntry value = new DatabaseEntry();
queryKey.setData(key.getBytes("UTF-8"));
OperationStatus status = db.get(null, queryKey, value,
LockMode.DEFAULT);
if (status == OperationStatus.SUCCESS) {
return new String(value.getData());
}
return null;
}
public boolean put(String key, String value) throws Exception {
byte[] theKey = key.getBytes("UTF-8");
byte[] theValue = value.getBytes("UTF-8");
OperationStatus status = db.put(null, new DatabaseEntry(theKey),
new DatabaseEntry(theValue));
if(status == OperationStatus.SUCCESS) {
return true;
}
return false;
}
public static void putDb(){
MyBerkeleyDB mbdb = new MyBerkeleyDB();
mbdb.setDbUp("D:\\bdb", 1000000);
mbdb.open("DB");
System.out.println("开始向BDB DB中存入数据…");
for(int i=0; i<20; i++) {
try {
String key = "Key"+i;
String value = "Value"+i;
System.out.println("[" + key + ":" + value + "]");
mbdb.put(key , value);
} catch (Exception e) {
e.printStackTrace();
}
}
mbdb.close();
}
public static void getDb(){
MyBerkeleyDB mbdb = new MyBerkeleyDB();
mbdb.setDbUp("D:\\bdb", 1000000);
mbdb.open("DB");
System.out.println("开始从BDB DB中取数据…");
for(int i=0; i<20; i++) {
try {
String key = "Key"+i;
String value = "Value"+i;
System.out.println("[" + key + ":" + value + "]");
System.out.println(mbdb.get(key));
} catch (Exception e) {
e.printStackTrace();
}
}
mbdb.close();
}
public static void main(String[] args) {
putDb();
getDb();
}
}
以上实例需要调用je-3.2.44.jar包,测试通过。
*
*/
package cn.com.bdb;
import java.io.File;
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;
/**
* @author QG
*
* 2010-12-8 下午03:59:30 MyBerkeleyDB.java
*
* @since 1.0 @version 1.0
*
*/
public class MyBerkeleyDB {
private Environment env;
private Database db;
public MyBerkeleyDB() {
}
public void setDbUp(String path, long cacheSize) {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
envConfig.setCacheSize(cacheSize);
try {
env = new Environment(new File(path),envConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public void open(String dbName) {
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);
try {
db = env.openDatabase(null, dbName, dbConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public void close() {
try {
if(db != null) {
db.close();
}
if(env != null) {
env.close();
}
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public String get(String key) throws Exception {
DatabaseEntry queryKey = new DatabaseEntry();
DatabaseEntry value = new DatabaseEntry();
queryKey.setData(key.getBytes("UTF-8"));
OperationStatus status = db.get(null, queryKey, value,
LockMode.DEFAULT);
if (status == OperationStatus.SUCCESS) {
return new String(value.getData());
}
return null;
}
public boolean put(String key, String value) throws Exception {
byte[] theKey = key.getBytes("UTF-8");
byte[] theValue = value.getBytes("UTF-8");
OperationStatus status = db.put(null, new DatabaseEntry(theKey),
new DatabaseEntry(theValue));
if(status == OperationStatus.SUCCESS) {
return true;
}
return false;
}
public static void putDb(){
MyBerkeleyDB mbdb = new MyBerkeleyDB();
mbdb.setDbUp("D:\\bdb", 1000000);
mbdb.open("DB");
System.out.println("开始向BDB DB中存入数据…");
for(int i=0; i<20; i++) {
try {
String key = "Key"+i;
String value = "Value"+i;
System.out.println("[" + key + ":" + value + "]");
mbdb.put(key , value);
} catch (Exception e) {
e.printStackTrace();
}
}
mbdb.close();
}
public static void getDb(){
MyBerkeleyDB mbdb = new MyBerkeleyDB();
mbdb.setDbUp("D:\\bdb", 1000000);
mbdb.open("DB");
System.out.println("开始从BDB DB中取数据…");
for(int i=0; i<20; i++) {
try {
String key = "Key"+i;
String value = "Value"+i;
System.out.println("[" + key + ":" + value + "]");
System.out.println(mbdb.get(key));
} catch (Exception e) {
e.printStackTrace();
}
}
mbdb.close();
}
public static void main(String[] args) {
putDb();
getDb();
}
}
以上实例需要调用je-3.2.44.jar包,测试通过。
相关文章推荐
- mongdb文件型数据库开发实例
- Qt数据库开发实例(sqlite数据库)
- 用ADO封装类的数据库程序开发实例(2)
- iPhone开发 iPhone Sqlite3数据库实例操作
- VB6.0数据库开发之实例5总结
- 使用ADO封装类的数据库程序开发实例[第二版] (上)
- 数据库应用软件开发前3个步骤之实例讲解
- [数据库 开发] SQL多表连接查询(详细实例)
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [1] 单例模式连接数据库
- AgileEAS.NET平台开发实例-药店系统-数据库设计
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- 使用ADO封装类的数据库程序开发实例(下)
- ObjectContext 是开发人员在查询、添加和删除其实体实例以及将新状态保存回数据库时用到的主要构造
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- 使用ADO封装类的数据库程序开发实例[第二版] (上)
- 数据库开发实例总结
- 使用ADO封装类的数据库程序开发实例(上)
- 【Android 开发实例】时间管理APP开发之数据库设计
- 【Android 开发实例】时间管理APP开发之数据库设计
- 使用ADO封装类的数据库程序开发实例[第二版] (下)