Java嵌入式数据库berkeleyDB(二)
来源:互联网 发布:淘宝助理软件手机版 编辑:程序博客网 时间:2024/06/03 12:03
package com.sillycat.plugin.berkeley;
import java.io.File;
import java.io.UnsupportedEncodingException;
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 BerkeleyDBService {
private static final String DB_ENVIRONMENT_ROOT = "D:/dbRoot";
private Environment myDBEnvironment = null;
private static Database myDB = null;
/**
* 打开database环境
*
* @return
*/
public void createDBEnvironment() {
if (myDBEnvironment != null) {
return;
}
try {
EnvironmentConfig config = new EnvironmentConfig();
config.setAllowCreate(true);// 如果不存在则创建一个
config.setReadOnly(false); // 以只读方式打开,默认为false
config.setTransactional(true); // 事务支持,如果为true,则表示当前环境支持事务处理,默认为false,不支持事务处理
myDBEnvironment = new Environment(new File(DB_ENVIRONMENT_ROOT),
config);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
/**
* RAM cache命中率
*
* @return
*/
public long getRAMStatus() {
long status = 0;
try {
// 来监视RAM cache命中率
status = myDBEnvironment.getStats(null).getNCacheMiss();
} catch (DatabaseException e) {
e.printStackTrace();
}
return status;
}
/**
* 关闭database环境
*/
public void closeDBEnvironment() {
try {
if (myDBEnvironment != null) {
myDBEnvironment.cleanLog(); // 在关闭环境前清理下日志
myDBEnvironment.close();
}
} catch (DatabaseException e) {
e.printStackTrace();
}
}
/**
* 创建一个数据库
*/
public void createDB() {
// 打开一个数据库,数据库名为
// sampleDatabase,数据库的配置为dbConfig
if (myDB != null) {
return;
}
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);
try {
myDB = myDBEnvironment.openDatabase(null, "sampleDatabase",
dbConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
/**
* 关闭数据库
*/
public void closeDB() {
try {
if (myDB != null) {
myDB.close();
}
} catch (DatabaseException e) {
e.printStackTrace();
}
}
/**
* 放入数据
*
* @param key
* @param value
*/
public void put(String key, String value) {
try {
DatabaseEntry theKey = new DatabaseEntry(key.getBytes("UTF-8"));
DatabaseEntry theData = new DatabaseEntry(value.getBytes("UTF-8"));
myDB.put(null, theKey, theData);
} catch (DatabaseException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/**
* 取得数据
*
* @param key
* @return
*/
public String get(String key) {
String value = "";
try {
DatabaseEntry theKey = new DatabaseEntry(key.getBytes("UTF-8"));
DatabaseEntry theData = new DatabaseEntry(value.getBytes("UTF-8"));
if (myDB.get(null, theKey, theData, LockMode.DEFAULT) == OperationStatus.SUCCESS) {
byte[] retData = theData.getData();
value = new String(retData, "UTF-8");
}
} catch (DatabaseException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
/**
* 删除数据
*
* @param key
*/
public void remote(String key) {
DatabaseEntry theKey;
try {
theKey = new DatabaseEntry(key.getBytes("UTF-8"));
myDB.delete(null, theKey);
// 删除数据
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DatabaseException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
BerkeleyDBService bService = new BerkeleyDBService();
bService.createDBEnvironment();
bService.createDB();
// 记录
String aKey = "001";
String aData = "我是正文内容!!!!!!!";
bService.put(aKey,aData);
String data = bService.get(aKey);
System.out.println(data);
bService.remote(aKey);
bService.closeDB();
bService.closeDBEnvironment();
}
}
- Java嵌入式数据库berkeleyDB(二)
- Java嵌入式数据库berkeleyDB(一)
- 嵌入式数据库BerkeleyDB的应用
- 嵌入式数据库——BerkeleyDB之JavaEdition
- java连接BerkeleyDB数据库使用实例
- java之BerkeleyDB(二)--绑定(Binding)技术、游标(Cursor)
- java之BerkeleyDB(二)--绑定(Binding)技术、游标(Cursor)
- java操作BerkeleyDB数据库判断元素是否存在(过滤器)
- Java之BerkeleyDB(一)
- Java之BerkeleyDB(三)
- 嵌入式数据库(二)
- 【搜索引擎】BerkeleyDB实现队列数据库
- BerkeleyDB java的简单使用
- Java嵌入式数据库:MapDB
- CAS配置(二)- 集成 oracle BerkeleyDB
- 在fedora里面安装BerkeleyDB数据库
- Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库
- Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库
- 163相册密码破解 - 简单版
- HeadFirst Strategy策略模式
- SHA1算法原理
- flash加载html代码
- Java嵌入式数据库berkeleyDB(一)
- Java嵌入式数据库berkeleyDB(二)
- gcc Link order of libraries
- 酒店管理系统需求分析
- 什么是AT Command Set?
- 解析word文档2
- 第4章 让操作系统走进保护模式
- 整理:.NET 性能优化方法总结
- 读Windows核心编程 - 13
- 马化腾关于产品设计与用户体验的培训摘要