- 浏览: 724879 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> 1using System;
2using System.Collections.Generic;
3using System.IO;
4using System.Linq;
5using System.Runtime.Serialization.Formatters.Binary;
6using System.Text;
7using BerkeleyDb;
8using Component;
9
10namespace ToolManager
11{
12 public class BDBRecord
13 {
14 public object Key { get; set; }
15 public string Value { get; set; }
16 } /**//// <summary>
17 /// BDB数据库操作类库
18 /// </summary>
19 public class BDBHelper
20 {
21
22 private string DBFilePath { get; set; }
23 private DBStoreType DBType { get; set; }
24 public enum DBStoreType : byte
25 {
26 Auto=1,
27 Queue,
28 Hash
29 }
30 [Obsolete("该构造函数已废弃 ,请使用BDBHelper(string dbfilePath)")]
31 public BDBHelper()
32 {
33 }
34
35 public BDBHelper(string dbfilePath)
36 {
37 this.DBFilePath = dbfilePath;
38 }
39 [Obsolete("该构造函数已废弃 ,请使用BDBHelper(string dbfilePath)")]
40 public BDBHelper(string dbfilePath, DBStoreType type)
41 {
42 this.DBFilePath = dbfilePath;
43 this.DBType = type;
44 }
45 public BDBRecord FindOne()
46 {
47 return this.FindOne(null);
48 }
49 public BDBRecord FindOne(Func<object, string, bool> predicate)
50 {
51 //Dictionary<string, object> dict = new Dictionary<string, object>();
52 try
53 {
54 Queue格式#region Queue格式
55 //if (this.DBType == DBStoreType.Queue)
56 //{
57 using (Db db = new Db(DbCreateFlags.None))
58 {
59 db.RecLen = 5000;
60 db.RecPad = '.';
61 DbQueue file = (DbQueue)db.Open(null, this.DBFilePath, null, DbType.Queue, Db.OpenFlags.Create, 0);
62 using (DbQueueCursor cursor = file.OpenCursor(null, DbFileCursor.CreateFlags.None))
63 {
64 foreach (KeyDataPair kvp in cursor)
65 {
66 BinaryFormatter bf = new BinaryFormatter();
67 MemoryStream stream = new MemoryStream();
68 stream.Write(kvp.Data.Buffer, 0, kvp.Data.Size);
69 stream.Seek(0, SeekOrigin.Begin);
70 string k = BitConverter.ToInt32(kvp.Key.Buffer, 0).ToString();
71 object v = bf.Deserialize(stream);
72 if (predicate == null)
73 {
74 return new BDBRecord() { Key = v, Value = k };
75 }
76 else if (predicate(v, k))
77 {
78 return new BDBRecord() { Key = v, Value = k };
79 }
80 }
81 }
82 }
83 //}
84 #endregion
85 }
86 catch (Exception ex)
87 {
88 Hash格式#region Hash格式
89 //else if(this.DBType==DBStoreType.Hash)
90 //{
91 //遍历数据
92 using (Db db = new Db(DbCreateFlags.None))
93 {
94 //这里如果应用Db.OpenFlags.Create则在启动后会覆盖同名文件,并新建同名文件
95 //Db.OpenFlags.Truncate会清空数据库
96 DbHash dbf = (DbHash)db.Open(null, this.DBFilePath, null, DbType.Hash,
97 Db.OpenFlags.ThreadSafe, 0);
98
99 using (DbHashCursor cursor = dbf.OpenCursor(null, DbFileCursor.CreateFlags.None))
100 {
101 foreach (KeyDataPair kvp in cursor)
102 {
103 BinaryFormatter bf = new BinaryFormatter();
104 MemoryStream stream = new MemoryStream();
105 stream.Write(kvp.Data.Buffer, 0, kvp.Data.Size);
106 stream.Seek(0, SeekOrigin.Begin);
107 string k = Encoding.UTF8.GetString(kvp.Key.Buffer, 0, kvp.Key.Size);
108 object v = bf.Deserialize(stream);
109 if (predicate == null)
110 {
111 return new BDBRecord() { Key = v, Value = k };
112 }
113 else if (predicate(v, k))
114 {
115 return new BDBRecord() { Key = v, Value = k };
116 }
117 }
118 }
119 }
120 #endregion
121 //}
122 }
123 //return dict;
124 return null;
125 }
126 public Dictionary<object, string> FindAll(Func<object, string, bool> predicate)
127 {
128
129 Dictionary<object, string> dict = new Dictionary<object, string>();
130 try
131 {
132 Queue格式#region Queue格式
133 //if (this.DBType == DBStoreType.Queue)
134 //{
135 using (Db db = new Db(DbCreateFlags.None))
136 {
137 db.RecLen = 5000;
138 db.RecPad = '.';
139 DbQueue file = (DbQueue)db.Open(null, this.DBFilePath, null, DbType.Queue, Db.OpenFlags.Create, 0);
140color: #000
2using System.Collections.Generic;
3using System.IO;
4using System.Linq;
5using System.Runtime.Serialization.Formatters.Binary;
6using System.Text;
7using BerkeleyDb;
8using Component;
9
10namespace ToolManager
11{
12 public class BDBRecord
13 {
14 public object Key { get; set; }
15 public string Value { get; set; }
16 } /**//// <summary>
17 /// BDB数据库操作类库
18 /// </summary>
19 public class BDBHelper
20 {
21
22 private string DBFilePath { get; set; }
23 private DBStoreType DBType { get; set; }
24 public enum DBStoreType : byte
25 {
26 Auto=1,
27 Queue,
28 Hash
29 }
30 [Obsolete("该构造函数已废弃 ,请使用BDBHelper(string dbfilePath)")]
31 public BDBHelper()
32 {
33 }
34
35 public BDBHelper(string dbfilePath)
36 {
37 this.DBFilePath = dbfilePath;
38 }
39 [Obsolete("该构造函数已废弃 ,请使用BDBHelper(string dbfilePath)")]
40 public BDBHelper(string dbfilePath, DBStoreType type)
41 {
42 this.DBFilePath = dbfilePath;
43 this.DBType = type;
44 }
45 public BDBRecord FindOne()
46 {
47 return this.FindOne(null);
48 }
49 public BDBRecord FindOne(Func<object, string, bool> predicate)
50 {
51 //Dictionary<string, object> dict = new Dictionary<string, object>();
52 try
53 {
54 Queue格式#region Queue格式
55 //if (this.DBType == DBStoreType.Queue)
56 //{
57 using (Db db = new Db(DbCreateFlags.None))
58 {
59 db.RecLen = 5000;
60 db.RecPad = '.';
61 DbQueue file = (DbQueue)db.Open(null, this.DBFilePath, null, DbType.Queue, Db.OpenFlags.Create, 0);
62 using (DbQueueCursor cursor = file.OpenCursor(null, DbFileCursor.CreateFlags.None))
63 {
64 foreach (KeyDataPair kvp in cursor)
65 {
66 BinaryFormatter bf = new BinaryFormatter();
67 MemoryStream stream = new MemoryStream();
68 stream.Write(kvp.Data.Buffer, 0, kvp.Data.Size);
69 stream.Seek(0, SeekOrigin.Begin);
70 string k = BitConverter.ToInt32(kvp.Key.Buffer, 0).ToString();
71 object v = bf.Deserialize(stream);
72 if (predicate == null)
73 {
74 return new BDBRecord() { Key = v, Value = k };
75 }
76 else if (predicate(v, k))
77 {
78 return new BDBRecord() { Key = v, Value = k };
79 }
80 }
81 }
82 }
83 //}
84 #endregion
85 }
86 catch (Exception ex)
87 {
88 Hash格式#region Hash格式
89 //else if(this.DBType==DBStoreType.Hash)
90 //{
91 //遍历数据
92 using (Db db = new Db(DbCreateFlags.None))
93 {
94 //这里如果应用Db.OpenFlags.Create则在启动后会覆盖同名文件,并新建同名文件
95 //Db.OpenFlags.Truncate会清空数据库
96 DbHash dbf = (DbHash)db.Open(null, this.DBFilePath, null, DbType.Hash,
97 Db.OpenFlags.ThreadSafe, 0);
98
99 using (DbHashCursor cursor = dbf.OpenCursor(null, DbFileCursor.CreateFlags.None))
100 {
101 foreach (KeyDataPair kvp in cursor)
102 {
103 BinaryFormatter bf = new BinaryFormatter();
104 MemoryStream stream = new MemoryStream();
105 stream.Write(kvp.Data.Buffer, 0, kvp.Data.Size);
106 stream.Seek(0, SeekOrigin.Begin);
107 string k = Encoding.UTF8.GetString(kvp.Key.Buffer, 0, kvp.Key.Size);
108 object v = bf.Deserialize(stream);
109 if (predicate == null)
110 {
111 return new BDBRecord() { Key = v, Value = k };
112 }
113 else if (predicate(v, k))
114 {
115 return new BDBRecord() { Key = v, Value = k };
116 }
117 }
118 }
119 }
120 #endregion
121 //}
122 }
123 //return dict;
124 return null;
125 }
126 public Dictionary<object, string> FindAll(Func<object, string, bool> predicate)
127 {
128
129 Dictionary<object, string> dict = new Dictionary<object, string>();
130 try
131 {
132 Queue格式#region Queue格式
133 //if (this.DBType == DBStoreType.Queue)
134 //{
135 using (Db db = new Db(DbCreateFlags.None))
136 {
137 db.RecLen = 5000;
138 db.RecPad = '.';
139 DbQueue file = (DbQueue)db.Open(null, this.DBFilePath, null, DbType.Queue, Db.OpenFlags.Create, 0);
140color: #000
发表评论
-
关于分层架构中的业务实体层的使用一直不太清楚,可否指点一下?
2007-03-23 09:10 671我知道业务逻辑层又可细分为三个层次,分别是业务外观层业务规则层 ... -
xml反串行化
2007-07-02 17:23 7321using System; 2using Syste ... -
WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
2007-07-04 19:00 881利用DataSet.ReadXml载入一个xml文件,再使用G ... -
对websharp中aspect的改进(待续)
2007-11-17 14:27 692缘起 为了在我的《朗志轻量级项目管理解决方案》项目中应用 ... -
WebSharp Aspect改进(续2)
2007-11-19 21:39 700接着上次在《朗志轻量级项目管理解决方案》中对Aspec ... -
TreeView(树形控件)中常用到的属性和事件
2007-11-19 22:22 12941.TreeView(树形控件) ... -
有没有适合的的面向对象的查询语言(Object Query Language)
2007-11-28 10:15 759在我做《朗志轻量级项目管理解决方案》的过程中,我希望 ... -
问题解答集
2007-11-29 18:11 4401 如何在源代码的目录下添加一个测试文件 ... -
FckEditor自定义按钮
2007-11-29 18:35 830目录 FckEditor自定义按钮 1 目录 ... -
GhstDoc2.1.1使用手册
2007-11-29 18:39 721目录 GhstDoc2.1.1使用手册 1 ... -
Log4net使用说明
2007-11-29 18:44 785Log4net使用说明 1 修改历史纪录 ... -
MySQLHelper类使用说明
2007-11-29 18:46 1315目录 MySQLHelper类使用说明 1 目录 ... -
NDoc1.3.1使用手册
2007-11-29 18:47 765目录 NDoc1.3.1使用手册 1 目录 ... -
程序中操作Word
2007-11-29 18:52 728目录 程序中操作Word 1 目录 2 ... -
利用SMTP服务发送电子邮件
2007-11-29 18:58 1353目录 利用SMTP服务发送电子邮件 1 目录 ... -
程序中操作Excel
2007-11-29 18:59 637目录 程序中操作Excel 1 目录 ... -
访问被拒绝:“AjaxPro”的解决方案
2007-11-29 19:01 531目录 访问被拒绝:&qu ... -
sqlserver的版本号
2008-02-27 21:01 819当你安装了sqlserver 2005之后你就可以使用sqls ... -
在安装有VS2008beta2版本的机子上使用vs2005进行部署出现问题的解决方法
2008-02-27 21:13 679我知道,2008rtm发布已经很久了,不巧的是同学在我的机子上 ... -
忙话codesmith
2008-07-28 15:01 866为什么不是闲话,因为我很忙,项目中新问题是接连不断,上一篇讲到 ...
相关推荐
1. **性能测试**:通过模拟大量并发读写操作,测试BDB在不同工作负载下的响应速度和吞吐量,帮助优化数据库配置以达到最佳性能。 2. **压力测试**:在高并发环境下运行测试,检测BDB在极限条件下的稳定性和耐久性,...
**伯克利数据库(Berkeley DB...总的来说,伯克利数据库(BDB)是一个强大的、适用于32位系统的嵌入式数据库解决方案,通过.NET接口库提供了与.NET环境的良好集成。在轻量级数据管理和存储需求中,它是值得考虑的选择。
spring.net+ibatis.net+mvc配置demo.rar spring.net版本:1.3.2 ibatis.net版本:1.6.1 demo运行环境是VS2013 数据库表,我就没传了,测试的时候,建立表 CREATE TABLE [dbo].[Hair8_AD]( [ADId] [int] ...
- 对于这样的库,通常会有示例代码展示如何使用API,以及单元测试来验证其正确性。 9. **移植性**: - 考虑到Berkeley DB跨平台的特性,这个API应该能够在多种操作系统上运行,如Windows、Linux和macOS等。 综上...
bdb性能测试(包括查询、插入、删除)批量和单条的比较
总的来说,tokyocabinet的HDB和BDB引擎各有优劣,选择哪个取决于具体的应用需求。HDB适合需要快速随机访问的场景,而BDB更适合需要保持数据有序和进行范围查询的情况。通过深入学习这两种引擎的源码,我们可以更好地...
总的来说,BDB数据库9.0版本是一个强大、灵活且可靠的数据库解决方案,尤其适合需要高性能、高并发和本地数据存储的应用场景。通过理解和掌握BDB的相关知识,开发者可以构建出更稳定、更高效的应用程序。
总的来说,这个“bdb练习”旨在通过源码阅读和实际操作,提高开发者对bdb的理解和使用能力。通过对bdb的深入学习,开发者可以更好地解决数据存储问题,提升应用程序的效率和稳定性,特别是在处理大量数据和高并发的...
标题 "BDB in kernel" 指的是 Berkeley Database (BDB) 在Linux内核中的实现,这是一项将数据库管理系统直接集成到操作系统核心的技术。在描述中提到的 "Berkeley DB in kernel for linux-3.13" 显然是指BDB在Linux ...
Oracle中的BDB(Berkeley ...总的来说,Oracle的BDB数据库因其轻量级、高性能和易用性,成为了许多小型项目和嵌入式系统的首选数据库。开发者可以根据实际需求,灵活地利用BDB提供的API来构建高效的数据存储解决方案。
<br>如果您目前使用的是SQLServer的查询分析器进行数据库数据查询分析, 那么不妨试一下SQL自动完成功能,通过该功能可大大简化数据查询操作。 ( SQL自动完成功能即在执行查询分析时,不需要手动输入...
bdb数据库是一种高效、重要的数据存储解决方案,特别是在Oracle公司提供的产品中占据着一席之地。bdb全称为Berkeley DB,它是一种轻量级、嵌入式数据库管理系统,常用于需要快速、本地化数据存储的应用场景。Oracle ...
**BDB数据库详解** ...总的来说,BDB数据库因其高效、灵活和可靠的特性,在许多需要高性能数据存储的应用中得到了广泛应用。尽管现代有许多其他数据库解决方案,但BDB在特定场景下仍具有其独特的价值和优势。
本指南将详细介绍BDB的基本概念、安装配置、操作方法以及常见问题解决策略,旨在帮助个人学习者和研究人员更好地理解和运用BDB。 ### 一、BDB概述 BDB是一款非关系型数据库管理系统(NoSQL),它提供了键值对存储...
总的来说,Bainsoft BDB是一款全面的数据库管理工具,适用于多样的数据库环境,提供了丰富的功能,旨在优化数据库管理流程。对于那些需要跨平台管理数据库的用户来说,它无疑是一个值得考虑的选择。不过,随着技术的...
数据库设计工具BDB 最新版 v3.0 v3.0 下载: 1) 中文简体版: [url]http://www.bainsoft.com/downloads/BDB.rar[/url] 2) 英文版: [url]http://www.bainsoft.com/downloads/BDBEN.rar[/url] v3.0版本更新: 1, 增加...
这对于需要频繁读取和写入操作的高并发应用来说,是一个显著的优势。 其次,BDB提供了多种数据访问接口,包括C、C++、Java和Python等,这使得它能够无缝集成到各种开发环境中。同时,BDB支持事务处理,确保了数据的...
BDB使用日志记录技术来确保数据的持久性。每次事务更改都会被写入日志,即使在系统崩溃后,也能通过回滚日志恢复到一致状态。定期的检查点可以将内存中的更改写入磁盘,减少恢复时的日志处理量。 **7. 应用场景** ...
基于bdb存贮的简单fifo持久队列,支持多个队列,采用bdb的btree方式组织数据。 启动参数说明: -n 数据库的文件名,默认为:xianglei.db -p http访问的端口号,默认:1985 -i http访问的ip地址,默认:127.0.0.1 -f ...
BDB Professional Edition v2.8 >BDB(Bain DB Builder)是跨数据库平台的数据库设计工具、 >目前版本支持的数据库平台: > √ Access > √ MS SQLServer > √ Oracle > √ MySQL > √ SQL...