Berkeley DB 是一个嵌入式数据库,它适合于管理海量的(256T)、简单的数据。BDB是以键值对(value/key)来存储和管理数据库的。键可以重复,数据值可以是任意类型的。BDB的底层是用B+树或者其他算法实现的。我用的jar包是B+树实现的版本。
Berkeley DB是用Environment对象来管理数据库,一个Environment可以管理多个database。每个database都存储键值对,而序列化到磁盘上是通过catalog实现的。BDB的操作是在内存和磁盘上的,最终BDB的存取结果集在程序中使用是通过容器实现的(数据库在程序中的视图)。
所以BDB的使用分为5步:
- 创建Environment
//Open Environment
private Environment environment;
//同EnvironmentConfig来配置环境
EnvironmentConfig environmentConfig=new EnvironmentConfig();
environmentConfig.setTransactional(true);
environmentConfig.setAllowCreate(true);
//homeDirectory是数据库存放的目录
environment=new Environment(new File(homeDirectory),environmentConfig);
- 打开database和catalog
protected StoredClassCatalog catalog;//catalog
protected Database database;//database
private static final String CLASS_CATALOG="java_class_catalog";//数据库名
protected Database catalogDatabase;//catalog存放处
//open Database
DatabaseConfig dbConfig=new DatabaseConfig();//数据库配置
dbConfig.setTransactional(true);
catalogDBConfig.setAllowCreate(true);
dbConfig.setSortedDuplicates(false);//不存重复键值
database=environment.openDatabase(null, "URL", dbConfig);//存放实际数据的数据库
//Open Catalog
DatabaseConfig catalogDBConfig=new DatabaseConfig();//数据库配置
catalogDBConfig.setTransactional(true);
catalogDBConfig.setAllowCreate(true);
catalogDatabase=environment.openDatabase(null, CLASS_CATALOG, catalogDBConfig);
//用StoredClassCatalog类将catalog保存在db中并返回可操作对象。
catalog=new