本来想写一篇,发现网上有一篇已经写的很好了,所以稍微加一些介绍,其他部分尤其是去看它的吧.附带自己写的一个connection 代码.
该地址:http://whf0524.blog.163.com/blog/static/101414692008622423974/
另一篇文章请参看http://bbs.chinaunix.net/archiver/tid-1231491.html
简介
Berkeley DB(BDB)是一个高性能的,嵌入式键值对(Key/Value Pair)数据库.Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据。
而Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。
- 不支持网络访问
- 能够高效率的处理1到1百万条记录,制约JE数据库的往往是硬件系统,而不是JE本身。
- 多线程支持,JE使用超时的方式来处理线程间的死琐问题。
- 采用简单的key/value对应的形式。因此不支持SQL或者其他的数据库查询语言,不支持表结构和数据列。它的记录和键都可以达到4G字节的长度。
- 支持很多高级的数据库特性,比如ACID 数据库事务处理, 细粒度锁, XA接口,热备份以及同步复制。
- 采用B-Tree结构
- 允许创建二级库。这样我们就可以方便的使用一级key,二级key来访问我们的数据。
- 支持RAM缓冲,这样就能减少频繁的IO操作。
- 支持日志。
- 游标支持。
自己写的Connection类
package com.spider.bdb;
import java.io.File;
import java.io.FileNotFoundException;
import com.spider.util.CrawlURI;
import com.sleepycat.bind.EntryBinding;
import com.sleepycat.bind.serial.SerialBinding;
import com.sleepycat.bind.serial.StoredClassCatalog;
import com.sleepycat.collections.StoredMap;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.EnvironmentLockedException;
public class BDBConnection {
private String homeDirectory = "";
private static final String CLASS_CATALOG = "java_class_catalog";
private Environment env = null;
private StoredClassCatalog javaCatalog = null;
protected Database catalogdatabase = null;
private Database database = null;
private StoredMap<String, CrawlURI> pendingUrisDB = null;
/**
* 设置数据库日志目录
*/
public BDBConnection(String homeDirectory) {
this.homeDirectory = homeDirectory;
}
/**
* 创建BDB环境配置和数据库配置,catalog数据库和应用数据库
*
* @throws EnvironmentLockedException
* @throws DatabaseException
*/
private void createConnection() {
try {
/*
* 设置Environment Config
*/
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setTransactional(true);
//如果设置了true则表示当环境不存在时候重新创建一个环境,默认为false.
envConfig.setAllowCreate(true);
env = new Environment(new File(homeDirectory), envConfig);
/*
* 设置Database Config
*/
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setTransactional(true);
//如果设置了true则表示当数据库不存在时候重新创建一个数据库,默认为false.
dbConfig.setAllowCreate(true);
// 创建 CateLog 库
catalogdatabase = env.openDatabase(null, CLASS_CATALOG, dbConfig);
javaCatalog = new StoredClassCatalog(catalogdatabase);
// 创建应用库
database = env.openDatabase(null, homeDirectory, dbConfig);
} catch (EnvironmentLockedException e) {
e.printStackTrace();
} catch (DatabaseException e) {
e.printStackTrace();
}
}
// 使用默认的路径和缓存大小构造函数
public void openConnection() {
this.createConnection();
// 绑定数据和类类型
EntryBinding<String> keyBinding = new SerialBinding<String>(
javaCatalog, String.class);
EntryBinding<CrawlURI> valueBinding = new SerialBinding<CrawlURI>(
javaCatalog, CrawlURI.class);
pendingUrisDB = new StoredMap<String, CrawlURI>(database, keyBinding,
valueBinding, true);
}
public StoredMap<String, CrawlURI> getMap() {
return this.pendingUrisDB;
}
/**
* 关闭数据库,关闭环境
*
* @throws DatabaseException
*/
public void closeConnection() {
try {
database.close();
javaCatalog.close();
env.close();
} catch (DatabaseException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。 能够高效率的处理1到1百万条记录,制约JE数据库的往往是硬件系统,而不是JE本身。 多线程支持,JE使用超时的方式来处理...
Berkeley DB Java Edition(以下简称JE)是由美国Sleepycat Software公司(后被Oracle公司收购)开发的一套开放源码的嵌入式数据库,它采用K/V存储,能为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务
Berkeley DB Java Edition (JE) 官方7.5.11下载版本。 相关介绍 https://blog.csdn.net/hadues/article/details/80854288
很好用的NoSQL 数据库, google 使用此数据库存储自己的用户信息, 它能够处理海量数据,效率高
#资源达人分享计划#
Java版本的Berkeley DB用户手册,找了好久
NULL 博文链接:https://xpenxpen.iteye.com/blog/2124921
这个是最流行的嵌入式高性能开源数据库内核开发包,java企业开发必备。
Berkeley是属于nosql的一种,能够支持快速查询删除,查询100w的数据耗时只有0.4秒
Berkeley DB Java Edition JE 是一个完全用JAVA写的 它适合于管理海量的 简单的数据 能够高效率的处理1到1百万条记录 制约JE数据库的往往是硬件系统 而不是JE本身 多线程支持 JE使用超时的方式来处理线程间的死琐...
NULL 博文链接:https://rensanning.iteye.com/blog/1872481
自己稍微封装了一下,可以当成简单的map来使用。
Berkeley DB Java Edition (JE)是一个完全用JAVA 写的,它适合于管理海量的,简单的 数据。 l 能够高效率的处理 1 到 1 百万条记录,制约 JE 数据库的往往是硬件系统,而不是 JE 本身。 多线程支持,JE 使用超时的...
嵌入式数据库Berkeley DB Java Edition Berkeley DB的使用 使用Berkeley DB的一般步骤 创建、打开、操作、关闭数据库环境Environment
Java-Edition-BerkeleyDB-3.1.0,国外的开源数据库,供大家参考