DBlue 数据库访问组件(中间件) =欢迎大家拍砖=

主要功能是完成数据库的操作封装,并管理数据库连接池
DBlue 总设计图:



ConnManager 主要负责数据库访问对象与池的管理(包括池的初始化启动和对象的生成).主要是起到一个池与对象桥的作用.另外也对外提供给用户(中间件的使用者)设置/ 配置和获得数据库访问对象的一个通道.使用户(也就是使用者)可以不必关心内部对象组成与结构而轻松地管理整个 DBlue 的工作.当然,这此例项目中,我使用了 Door 这个类来让工作变得更简单, Door 的另一个作用(可以说是很重要的作用)是: 让 DBlue 中间件在整个使用过程中唯一(在同一个项目中唯一).这样可以很好的避免用户(也可能是无意中)在不知情的情况下,打开了多个DBlue.而DBlue里 是有池对象的(内存消耗很大).这样的后果是无法想象的.

AccessDB 设计图:



IAccessDB 定义了数据库的功能方法.AccessConstance则保存了数据类型对比表(给数据库对象生成工厂用),其中的filter功能是过滤SQL语句用 的,不过我感觉这个方法放在这里并不是很好(static型).AccessDBfactory主要是功能就是根据传入的参数(和 AccessConstance定义的相比较)来生成不同数据库(MSSQL,OLEDB,ORACLE,PostgreSQL)操作对象.用工厂的目的 是为了更好的扩展性,如果以后要加入另一个数据库访问组件是件很容易的事情(当然要.NET框架下的)


DO 设计图:



这里最关键的是:absAccessDB 这个类,托.NET框架的福,基本上所有以.NET为平台的数据库访问类的功能方法都是一样的(这也是面向接口编程的一大好处).所以在这里,几乎所有数 据库访问实现都由absAccessDB来完成(它可真得是个大功臣呀!~).并且它是实现了我前面定义的IAccessDB 这个接口,而IAccessDB这个接口就是提供给用户的. 在absAccessDB周围的那些继承它的类,只是按不同的数据库类型的区别而分别重写了生成对象的一些小方法(应该是只有二个).所以在新加数据库访问组件中,我们就不需要多写很多代码了.


DBPool 设计图:



写ConnPool的时候可真得是要了我的老命了(写的当时是这样的).因为那时用的机器很差.速度暴慢.而且也反工了几次,前几次写得都不是很理想.
它的功能主要是用来管理数据库操作对象集合,并实时对外(使用者)返回当然空闲的数据库操作对象(在数据库操作对象内有其状态:忙碌/空闲/错误 的标识).以做到最大限度地全数据库访问来得顺畅(这是我的想法,不知道实际上是不是这么回事:S)并能沉受一定程度的访问压力,我用java也重写过这 个池对象,并且开了15个线程同时循环不间断地访问数据库(insert/updat/delete/select),4小时左右,没有出问题

PS: 有的时候总感觉这个池在项目中会是个累赘.有点鸡肋的感觉.因为其实一般的连接对象就已经能满足数据访问/操作需要了.而且.NET也自带了数据库池.其实也不管它了,就当作练习吧!~ 呵呵!~

DBlue 0.1.2.4 源代码 下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值