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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

berkeley db java edition 源码,Berkeley DB Java Edition

發布時間:2025/3/15 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。