Berkeley DB Java Edition
2011-09-07 15:06
351 查看
本来想写一篇,发现网上有一篇已经写的很好了,所以稍微加一些介绍,其他部分尤其是去看它的吧.附带自己写的一个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类
该地址: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 Research
- Berkeley DB Java Edition
- How to use Berkeley DB Java Edition
- Berkeley DB Java Edition 使用手册
- Berkeley DB Java Edition存储文件格式概述
- Berkeley DB Java Edition Installation Notes(BDB JE安装教程)
- Berkeley DB Java Edition Setup
- Berkeley DB Java Edition
- 【转】嵌入式数据库Berkeley DB Java Edition
- Berkeley DB Java Edition 使用手册
- Building Applications with Berkeley DB Java Edition @ JDJ
- Oracle Berkeley DB Java 版
- Berkeley DB Java
- Oracle Berkeley DB Java 版
- Berkely DB Java Edition学习笔记一
- Berkeley DB Java
- Java Programming with Berkeley DB XML
- Berkeley DB for Java
- Berkeley DB——Java and .Net and Some Applications
- Sun Java 2 Standard Edition SDK 1.5的安装