您好,登錄后才能下訂單哦!
這篇文章主要介紹C# Berkeley DB數據庫怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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版做實例。
下載到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即可。
C# Berkeley DB數據庫操作需要借助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); }
另外C# Berkeley DB數據庫的操作需要借助于序列化。
///<summary> ///二進制序列化 ///</summary> privateBinaryFormatterformatter; ///<summary> ///鍵內存流 ///</summary> privateMemoryStreamkeyStream; ///<summary> ///內容內存流 ///</summary> privateMemoryStreamdataStream; privatevoidStreamInit() { formatter=newBinaryFormatter(); keyStream=newMemoryStream(); dataStream=newMemoryStream(); }
鍵值C# Berkeley DB數據庫,因此定義一個獲取鍵接口:
publicinterfaceIPut { stringKey{get;} }
以上是“C# Berkeley DB數據庫怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。