这篇文章主要介绍C# Berkeley DB数据库怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/linux操作系统上。Berkeley D
这篇文章主要介绍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数据库怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: C# Berkeley DB数据库怎么用
本文链接: https://lsjlt.com/news/294863.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0