资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C#BerkeleyDB数据库怎么用

这篇文章主要介绍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实例的一个过程。

///  /// 数据库目录  ///  private string directory;  ///  /// 数据库文件名  ///  private string dbName;   private DbBTree btree;  private Txn txn;  private Db db;  private Env env;  ///  /// 初始化  ///  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数据库的操作需要借助于序列化。

/// ///二进制序列化  /// privateBinaryFormatterformatter;  /// ///键内存流  /// privateMemoryStreamkeyStream;  /// ///内容内存流  /// privateMemoryStreamdataStream;   privatevoidStreamInit()  {  formatter=newBinaryFormatter();  keyStream=newMemoryStream();  dataStream=newMemoryStream();  }

键值C# Berkeley DB数据库,因此定义一个获取键接口:

publicinterfaceIPut  {  stringKey{get;}  }

以上是“C# Berkeley DB数据库怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网站标题:C#BerkeleyDB数据库怎么用
网站网址:http://cdkjz.cn/article/psjehc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220