日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

berkeley db java edition 源码,Berkeley DB Java Edition

發(fā)布時(shí)間:2025/3/15 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 berkeley db java edition 源码,Berkeley DB Java Edition 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本來(lái)想寫(xiě)一篇,發(fā)現(xiàn)網(wǎng)上有一篇已經(jīng)寫(xiě)的很好了,所以稍微加一些介紹,其他部分尤其是去看它的吧.附帶自己寫(xiě)的一個(gè)connection 代碼.

簡(jiǎn)介

Berkeley DB(BDB)是一個(gè)高性能的,嵌入式鍵值對(duì)(Key/Value Pair)數(shù)據(jù)庫(kù).Berkeley DB可以支持?jǐn)?shù)千的并發(fā)線程同時(shí)操作數(shù)據(jù)庫(kù),支持最大256TB的數(shù)據(jù)。

而B(niǎo)erkeley DB Java Edition (JE)是一個(gè)完全用JAVA寫(xiě)的,它適合于管理海量的,簡(jiǎn)單的數(shù)據(jù)。

不支持網(wǎng)絡(luò)訪問(wèn)

能夠高效率的處理1到1百萬(wàn)條記錄,制約JE數(shù)據(jù)庫(kù)的往往是硬件系統(tǒng),而不是JE本身。

多線程支持,JE使用超時(shí)的方式來(lái)處理線程間的死瑣問(wèn)題。

采用簡(jiǎn)單的key/value對(duì)應(yīng)的形式。因此不支持SQL或者其他的數(shù)據(jù)庫(kù)查詢語(yǔ)言,不支持表結(jié)構(gòu)和數(shù)據(jù)列。它的記錄和鍵都可以達(dá)到4G字節(jié)的長(zhǎng)度。

支持很多高級(jí)的數(shù)據(jù)庫(kù)特性,比如ACID 數(shù)據(jù)庫(kù)事務(wù)處理, 細(xì)粒度鎖, XA接口,熱備份以及同步復(fù)制。

采用B-Tree結(jié)構(gòu)

允許創(chuàng)建二級(jí)庫(kù)。這樣我們就可以方便的使用一級(jí)key,二級(jí)key來(lái)訪問(wèn)我們的數(shù)據(jù)。

支持RAM緩沖,這樣就能減少頻繁的IO操作。

支持日志。

游標(biāo)支持。

自己寫(xiě)的Connection類(lèi)

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;

/**

* 設(shè)置數(shù)據(jù)庫(kù)日志目錄

*/

public BDBConnection(String homeDirectory) {

this.homeDirectory = homeDirectory;

}

/**

* 創(chuàng)建BDB環(huán)境配置和數(shù)據(jù)庫(kù)配置,catalog數(shù)據(jù)庫(kù)和應(yīng)用數(shù)據(jù)庫(kù)

*

* @throws EnvironmentLockedException

* @throws DatabaseException

*/

private void createConnection() {

try {

/*

* 設(shè)置Environment Config

*/

EnvironmentConfig envConfig = new EnvironmentConfig();

envConfig.setTransactional(true);

//如果設(shè)置了true則表示當(dāng)環(huán)境不存在時(shí)候重新創(chuàng)建一個(gè)環(huán)境,默認(rèn)為false.

envConfig.setAllowCreate(true);

env = new Environment(new File(homeDirectory), envConfig);

/*

* 設(shè)置Database Config

*/

DatabaseConfig dbConfig = new DatabaseConfig();

dbConfig.setTransactional(true);

//如果設(shè)置了true則表示當(dāng)數(shù)據(jù)庫(kù)不存在時(shí)候重新創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),默認(rèn)為false.

dbConfig.setAllowCreate(true);

// 創(chuàng)建 CateLog 庫(kù)

catalogdatabase = env.openDatabase(null, CLASS_CATALOG, dbConfig);

javaCatalog = new StoredClassCatalog(catalogdatabase);

// 創(chuàng)建應(yīng)用庫(kù)

database = env.openDatabase(null, homeDirectory, dbConfig);

} catch (EnvironmentLockedException e) {

e.printStackTrace();

} catch (DatabaseException e) {

e.printStackTrace();

}

}

// 使用默認(rèn)的路徑和緩存大小構(gòu)造函數(shù)

public void openConnection() {

this.createConnection();

// 綁定數(shù)據(jù)和類(lèi)類(lèi)型

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;

}

/**

* 關(guān)閉數(shù)據(jù)庫(kù),關(guān)閉環(huán)境

*

* @throws DatabaseException

*/

public void closeConnection() {

try {

database.close();

javaCatalog.close();

env.close();

} catch (DatabaseException e) {

e.printStackTrace();

}

}

}

總結(jié)

以上是生活随笔為你收集整理的berkeley db java edition 源码,Berkeley DB Java Edition的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久影视 | 一区三区在线观看 | 久久高清无码视频 | 久久99精品久久久久久园产越南 | 国产婷婷色一区二区 | 国产精品无码av在线播放 | 久久久福利 | 亚洲天堂男人的天堂 | 久久国内偷拍 | 老司机成人在线 | 欧美成人一区二区三区 | av日韩高清 | 亚洲大色| 老妇裸体性激交老太视频 | 亚洲精品成av人片天堂无码 | 中文字幕日韩三级 | 亚欧美色图| 99热手机在线观看 | 视频h在线 | 欧美天堂一区 | 成人性做爰aaa片免费 | 久久不卡视频 | 涩涩视频在线观看 | jizz欧美| 狠狠躁狠狠躁视频专区 | av中文天堂 | 少女忠诚电影高清免费 | 激情四射综合网 | 少妇精品无码一区二区免费视频 | 真人毛片视频 | 少妇激情一区二区三区 | av男人资源| 做爰视频毛片视频 | 欧美熟妇交换久久久久久分类 | 久草高清 | 1024毛片| 日韩一区二区三区av | 国产精品一区二区精品 | wwwxxxx欧美 | 久久久精品久久久久久 | 亚洲一本在线观看 | 国产日韩久久久 | www中文字幕在线观看 | 亚洲欧美一区二区三区孕妇 | 亚洲AV无码精品久久一区二区 | 亚洲一区二区精品 | 日日干夜夜操 | 日本三级视频 | 日本免费在线视频 | 波多野吉衣在线视频 | 日韩中文字幕亚洲 | 久久99色 | 99热91 | 成人午夜精品 | 自拍亚洲国产 | 成人久久精品人妻一区二区三区 | wwwxxx欧美 | 最新av女优 | 素人av在线| 麻豆md0049免费 | 天天综合天天 | 乱码av| 一级做a爰片久久毛片 | 一级片视频网站 | 少妇户外露出[11p] | 欧美日韩一卡二卡三卡 | 久久艹影院 | 97影院 | 玖玖视频网| 九七av | 骑骑上司妻电影 | 久久视频99 | 天天槽 | 精品人妻少妇嫩草av无码专区 | 国产网站免费看 | 欧美 国产 综合 | 亚洲自拍偷拍色图 | 亚洲视频五区 | 高清av不卡 | a毛片在线免费观看 | 少妇饥渴放荡91麻豆 | 三上悠亚影音先锋 | 黑人性生活视频 | 亚洲少妇毛片 | 在线观看免费日韩av | 青青草91久久久久久久久 | 欧美日韩一级二级 | 视频1区 | 一级黄色免费毛片 | 丝袜+亚洲+另类+欧美+变态 | 午夜成人影片 | 精产国品一区二区三区 | 日韩精品一区二区三区四区五区 | 97视频在线免费观看 | 中文字幕国产在线观看 | 国产免费一区二区三区 | 国产伦精品一区二区三 | 欧美不卡在线观看 | 黄色午夜影院 |