中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# Berkeley DB數據庫怎么用

發布時間:2021-12-01 14:13:57 來源:億速云 閱讀:158 作者:小新 欄目:編程語言

這篇文章主要介紹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數據庫怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

都安| 河西区| 广东省| 玉溪市| 秦安县| 洛隆县| 江孜县| 青岛市| 阳曲县| 墨竹工卡县| 随州市| 枣庄市| 囊谦县| 获嘉县| 久治县| 镇平县| 台江县| 通州市| 永兴县| 会宁县| 巴东县| 尉犁县| 临安市| 资源县| 花莲市| 右玉县| 孟津县| 盐源县| 南江县| 彩票| 阿拉善右旗| 兰溪市| 宁阳县| 杂多县| 东城区| 教育| 新巴尔虎右旗| 苗栗县| 和平县| 法库县| 饶阳县|