免费咨询网络欺诈百度站长工具seo查询
BerkeleyDB(BDB)
优点
嵌入式数据库
KV型数据库文件型
数据库历史悠久、成熟、稳定、易布署、易运维、高性能跨语言支持全面
缺点
不支持直接网络访问数据共享
不方便不支持SQL(现在已支持,但应用的不多)
使用bdb在pom文件中加入依赖:
com.sleepycat
je
3.3.75
<repository><id>oracleReleases</id><name>Oracle Released Java Packages</name> <url>http://download.oracle.com/maven</url> <layout>default</layout></repository>
BDB掌握之API应用步骤
拆解数据库
环境变量配置
数据库CRUD操作
数据库关闭数据库
环境变量配置
/** * 初始化数据库参数 */ // 数据库所在的存储文件夹
String dbEnvFilePath = “bdb”;
// 数据库名称
String database = “weibo”;
// 环境变量的声明
Environment myDbEnvironment = null;
// 数据库操作的对象声明
Database weiboDatabase = null;
try { // 初始化数据存储根目录文件夹
File f = new File(dbEnvFilePath);
if (!f.exists()) {
f.mkdirs(); }
// 数据库配置变量初始化
DatabaseConfig dbConfig = new DatabaseConfig();// 打开数据库
dbConfig.setAllowCreate(true); // 初始化环境配置变量,基于该变量去配置环境变量 EnvironmentConfig envConfig = new EnvironmentConfig();
// 当使用的数据库配置变量不存在的时候,就自动创建
envConfig.setAllowCreate(true);
// 正式初始化数据库的环境
myDbEnvironment = new Environment(f, envConfig);
// 打开一个数据库,如果不存在,则自动创建
weiboDatabase = myDbEnvironment.openDatabase(null, database, dbConfig);
} catch (Exception e) {
e.printStackTrace(); }
数据库CRUD操作
数据库创建操作-create
数据记录的增加操作-Add
// 存储数据
// 数据的key
String aKey = “key1”;
// 数据的value
String aData = “data”;
try {
// 将key和value都封装到DatabaseEntry中
DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes(“UTF-8”));
DatabaseEntry theData = new DatabaseEntry(aData.getBytes(“UTF-8”));
// 写入数据库
weiboDatabase.put(null, theKey, theData);
// 对该库进行count操作,查看有多少条数据
System.out.println(weiboDatabase.count());
} catch (Exception e) {
e.printStackTrace(); }
数据读取操作-Read// 读取数据
//要读取数据的key aKey = “key1”;
加粗样式try {
//将读取数据的key封装到DatabaseEntry中
DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes(“UTF-8”)); /
/将读取出来的值以二进制形式放到DatabaseEntry中
DatabaseEntry theData = new DatabaseEntry();
//执行读取操作
weiboDatabase.get(null, theKey, theData, LockMode.DEFAULT);
//将二进制数据转化成字符串值
String result =new String(theData.getData(), “utf-8”);
//打印之
System.out.println(result);
} catch (Exception e) {
e.printStackTrace(); }
数据删除操作-Delete
// 删除数据
//要删除的数据的key
aKey = “key1”;
try { /
/将要删除数据的key封装到DatabaseEntry中
DatabaseEntry theKey = new DatabaseEntry(aKey.getBytes(“UTF-8”));
//执行删除操作
weiboDatabase.delete(null, theKey);
//查看数据库当前的记录数
System.out.println(weiboDatabase.count());
} catch (Exception e) {
e.printStackTrace(); }关闭数据库-Close// 关闭
try {
//先关闭数据库
if (weiboDatabase != null) {
weiboDatabase.close(); }
//再关闭BDB系统环境变量
if (myDbEnvironment != null) {
myDbEnvironment.sync();
myDbEnvironment.cleanLog();
// 在关闭环境前清理下日志
myDbEnvironment.close(); }
} catch (Exception e) {
e.printStackTrace(); }