C#使用BerkeleyDB操作簡介

來源:互聯網
上載者:User

Berkeley DB是曆史悠久的嵌入式資料庫系統,主要應用在UNIX/LINUX作業系統上。Berkeley DB的儲存的是key/value索引值對,可以理解為硬碟上的超級hash表。其可以管理256TB資料,而且能支撐幾千個並發訪問。目前Berkeley DB有C++版和Java版。所以,我們需要一個訪問的中間轉換,已經有人發布了C#的API。可以從 Berkeley DB for .NET 上面找到,現在最新版是0.95版本,可以支援4.3和4.5版。本篇將以4.5版做執行個體。BerkeleyDB的版本可以在http://www.oracle.com/technology/products/berkeley-db/index.html下載,當前最新版本為4.7版。4.5 C++版的Berkeley DB可以在http://www.oracle.com/technology/software/products/berkeley-db/db/index.html這裡下載。

By Birdshover@ 部落格園 http://www.cnblogs.com/birdshover/

下載到Berkeley DB for .Net的API——libdb-dotnet_0_95.zip後,就可以開始使用了。首先在libdb-dotnet_0_95.zip解壓縮的bin目錄找到libdb_dotNET45.dll,這個就是4.5版本使用的dll。建立項目,引用這個dll。注意,自己編譯源碼可能會編譯不過,主要是因為裡面一些委託和委託的參數可見度不一致造成的。把那些參數用到的class 或者struct都調成public即可。

BerkeleyDB的資料庫操作需要藉助DbBTree類。因此需要先得到DbBTree的執行個體,但是DbBTree類會對其它幾個類有依賴,必須依賴其它幾個類才能建立。

下面代碼就是初始化得到DbBTree執行個體的一個過程。

/// <summary>
/// 資料庫目錄
/// </summary>
private string directory;
/// <summary>
/// 資料庫檔案名
/// </summary>
private string dbName;

private DbBTree btree;
private Txn txn;
private Db db;
private Env env;
/// <summary>
/// 初始化
/// </summary>
private void Init()
{
env = new Env(EnvCreateFlags.None);
Env.OpenFlags envFlags =
Env.OpenFlags.Create |
Env.OpenFlags.InitLock |
Env.OpenFlags.InitLog |
Env.OpenFlags.InitMPool |
Env.OpenFlags.InitTxn |
Env.OpenFlags.Recover;
env.Open(directory, envFlags, 0);
txn = env.TxnBegin(null, Txn.BeginFlags.None);
db = env.CreateDatabase(DbCreateFlags.None);
btree = (DbBTree)db.Open(txn, dbName, null, DbType.BTree, Db.OpenFlags.Create, 0);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.