91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

卓资县| 磐安县| 松潘县| 嫩江县| 习水县| 武穴市| 宿州市| 额济纳旗| 阿勒泰市| 张家港市| 海淀区| 兴仁县| 峨边| 三原县| 巴林左旗| 成武县| 彭阳县| 莱西市| 阳山县| 股票| 襄垣县| 平湖市| 赤壁市| 海丰县| 马尔康县| 青海省| 兰州市| 兰西县| 津南区| 兰溪市| 东辽县| 昌都县| 开封县| 唐海县| 邓州市| 呼伦贝尔市| 仁寿县| 锡林郭勒盟| 湟源县| 朝阳县| 赣榆县|