berkeley db java edition 源码,Berkeley DB Java Edition
本来想写一篇,发现网上有一篇已经写的很好了,所以稍微加一些介绍,其他部分尤其是去看它的吧.附带自己写的一个connection 代码.
简介
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 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 keyBinding = new SerialBinding(
javaCatalog, String.class);
EntryBinding valueBinding = new SerialBinding(
javaCatalog, CrawlURI.class);
pendingUrisDB = new StoredMap(database, keyBinding,
valueBinding, true);
}
public StoredMap 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 源码,Berkeley DB Java Edition相关推荐
- 【Java集合源码剖析】Java集合框架
2019独角兽企业重金招聘Python工程师标准>>> Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集 ...
- java scrollpane源码_JScrollPane用法 Java实例
时间:2019-10-07 概述:JScrollPane 滚动条 在Java中使用JScrollPane的例子,特别是滚动条的设置等,程序代码中将设置水平与垂直表头.设置scrollPane的边角图案 ...
- java中间件源码_《Java中间件技术及其应用开发》PDF下载
资源名称:<Java中间件技术及其应用开发>PDF 下载 < 内容简介······ 本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧,包括JSP.Java serV ...
- java md5 源码_MD5加密 Java源代码
public classMD5_Encoding {//RFC1321中定义的标准4*4矩阵的常量定义. static final int S11 = 7, S12 = 12, S13 = 17, S ...
- JVM:Java指令源码opcode
JVM:Java指令源码opcode 关键词 Java 字节码是沟通 JVM 与 Java 程序的桥梁 指令( opcode)由操作码和操作数组成 JVM 翻译字节码( 将 opcode + 操作数翻 ...
- java activerecord.db_JFinal 源码分析 [DB+ActiveRecord]
我记得以前有人跟我说,"面试的时候要看spring的源码,要看ioc.aop的源码"那为什么要看这些开源框架的源码呢,其实很多人都是"应急式"的去读,就像读一篇 ...
- java商城源码_java 多商户商城系统源码分享
三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得 ...
- JAVA商城源码-B2B2C商城系统-独立部署,一套源码终身可用
在现在电商迅速占领市场的时代里,选择开发商城系统已经成为了一种趋势,现在开发搭建商城系统有很多编程语言可以选择,目前在电商里市面上受到很多商家企业的喜爱的便是Java商城系统,那为什么要选择Java电 ...
- 仙剑java_xianjian 仙剑游戏JAVA版源码,早期练习保存的资料 Develop 244万源代码下载- www.pudn.com...
文件名称: xianjian下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 636 KB 上传时间: 2015-10-06 下载次数: 0 提 供 者: 黄 详 ...
最新文章
- 在巨头壁垒下,人工智能细分领域涌现领跑者,这是AI真正的新机遇
- Django使用中常见的错误
- apache-spark导入eclipse环境
- 机器视觉 · 视觉系统选型
- python百度翻译包_python百度翻译移动端
- oracle数据库空间估算
- php 增加压缩文件,PHP生成压缩文件实例
- vscode 左侧图标_1分钟将vscode撸成小霸王
- 移远 NB-IOT_BC95_AT命令集
- 3DGIS 与 BIM 融合技术方案
- 计算机网络对生活的影响论文,浅论计算机对我们生活的影响论文
- OKR 如何转变你的绩效管理策略
- C++变量前面加下划线的含义
- hugo部署到Githut Pages
- 库房--库存信息增加导出Excel表格功能
- 【子网划分两个实例】通过子网数来划分子网和通过计算主机数来划分子网
- 网页集成高德地图显示
- 反馈对于用户体验的重要性
- 86版《西游记》“红孩儿”成中科院博士!名下52家公司不愧是牛魔王的娃
- dijkstra标号法表格_dijkstra算法模板及其用法
热门文章
- Mvvm、第一个Vue程序、Vue基本语法
- 电脑时间校对器_笔记本电脑如何保养?华为教你五招轻松延长使用时间
- android系统电视缺点,高清智能电视安卓系统优势与不足解析
- oracle删除orcl库_oracle删除数据文件
- php的Apa红灯_macos – 使用自制软件更新php和mysql后的apa...
- php atlas,apache atlas是什么
- matlab guide 自定义右键菜单
- Java基础 线程同步
- mysql max case连用_mysql 嵌套 case when 的问题
- informix和mysql的区别_DB2与Informix区别比较