您好,登錄后才能下訂單哦!
這篇文章主要介紹C# Berkeley DB數(shù)據(jù)庫(kù)怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
Berkeley DB是歷史悠久的嵌入式數(shù)據(jù)庫(kù)系統(tǒng),主要應(yīng)用在UNIX/LINUX操作系統(tǒng)上。Berkeley DB的存儲(chǔ)的是key/value鍵值對(duì),可以理解為硬盤上的超級(jí)hash表。其可以管理256TB數(shù)據(jù),而且能支撐幾千個(gè)并發(fā)訪問(wèn)。目前Berkeley DB有C++版和Java版。所以,我們需要一個(gè)訪問(wèn)的中間轉(zhuǎn)換,已經(jīng)有人發(fā)布了C#的API??梢詮?Berkeley DB for .NET 上面找到,現(xiàn)在***版是0.95版本,可以支持4.3和4.5版。本篇將以4.5版做實(shí)例。
下載到Berkeley DB for .Net的 API——libdb-dotnet_0_95.zip后,就可以開(kāi)始使用了。首先在libdb-dotnet_0_95.zip解壓縮的bin目錄找到 libdb_dotNET45.dll,這個(gè)就是4.5版本使用的dll。新建項(xiàng)目,引用這個(gè)dll。注意,自己編譯源碼可能會(huì)編譯不過(guò),主要是因?yàn)槔锩嬉恍┪泻臀械膮?shù)可見(jiàn)性不一致造成的。把那些參數(shù)用到的class 或者struct都調(diào)成public即可。
C# Berkeley DB數(shù)據(jù)庫(kù)操作需要借助DbBTree類。因此需要先得到DbBTree的實(shí)例,但是DbBTree類會(huì)對(duì)其它幾個(gè)類有依賴,必須依賴其它幾個(gè)類才能創(chuàng)建。
下面代碼就是初始化得到DbBTree實(shí)例的一個(gè)過(guò)程。
/// <summary> /// 數(shù)據(jù)庫(kù)目錄 /// </summary> private string directory; /// <summary> /// 數(shù)據(jù)庫(kù)文件名 /// </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); }
另外C# Berkeley DB數(shù)據(jù)庫(kù)的操作需要借助于序列化。
///<summary> ///二進(jìn)制序列化 ///</summary> privateBinaryFormatterformatter; ///<summary> ///鍵內(nèi)存流 ///</summary> privateMemoryStreamkeyStream; ///<summary> ///內(nèi)容內(nèi)存流 ///</summary> privateMemoryStreamdataStream; privatevoidStreamInit() { formatter=newBinaryFormatter(); keyStream=newMemoryStream(); dataStream=newMemoryStream(); }
鍵值C# Berkeley DB數(shù)據(jù)庫(kù),因此定義一個(gè)獲取鍵接口:
publicinterfaceIPut { stringKey{get;} }
以上是“C# Berkeley DB數(shù)據(jù)庫(kù)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。