.NET 下的数据库操作类库(MyADO)

原创 2005年07月27日 09:33:00

 

 

目前大多数开发人员长期从事企业开发的工作,免不了经常和数据库打交道,频繁的数据操作的代码就在项目中到处出现,为了去掉这些代码中“重复”的臭味,一些人写了数据库操作的类库,包括很多大企业也有自己的组件,但是实现方法可能各有不同吧。

很早以前看过一遍 孙亚民先生的文章也是设计模式的应用,很有启发自己也写了.net下的数据库操作类库,其实早就想把它出来共享了,现在很多数据库组件也很成熟了,又有SqlHelper这样权威的,所以也就不用拿我这个组件和它们的比较了,就算给大家扩展扩展思路吧。

首先设计模式在OOA/OOD的领域中被广泛的应用,相信大家为了使自己的系统有高扩充性和高灵活性,在自己的项目中也都使用了设计模式。在这个类库中我使用了“抽象工厂”模式(也是我熟悉的第一个设计模式),其好处就在于外部告诉“工厂”要生产什么,“工厂”就能老老实实的生产出来为外部所使用,至于其中的其它细节呢外部就不需要知道了。现在我们有的项目后台数据库要操作SQL Server,有的则是Oracle或是其它别的什么数据库,在操作上还是有不同的地方(比如使用不同的命名空间,不同的操作对象等等),我们刚好做个“工厂”出来让为来自外部的调用产生SQL Server或是Orcale的操作对象,在数据库和我们的应用之间建立一个逻辑层,前面操作数据库的方法完全通过组件完成而不用去关心后台的数据库类型。

下面看一下我的这个“工厂”结构组件的类图

基类就是DBOperator,也就是我们外部访问数据库的最终使用对象,它是抽象类没有使用接口。几个派生类是ODBCOperatorOleDBOperatorSqlDBOperator……(根据需要还可以再定义),为了真正实现对应数据库的操作。

 

DBOperatorFactory就是工厂类了,负责“生产”一个合理类的实例。

 

DBEnum枚举类型,列了几个常用数据类型,用于告诉“工厂”生产什么对象。

 

具体的数据库操作都是DBOperator定义出来的,比如数据库的OpenClose等等,而派生类覆盖基类的方法来具体实现操作的代码。客户端调用的时候就直接调用DBOperatorFactory类的GetDBOperator方法去获取数据库操作实例就可以了(为了使用方便这里的类还可以根据使用者经常使用的数据库而定,比如我经常用SQL Server 所以我有一个方法重载直接生成SqlDBOperator的实例)。

每次用的时候别忘了using MyADO

调用的实例:

using System;

using System.Data;

using MyADO;

 

public class TestClass

{

  private string _sConn = "server=.;database=pubs;uid=sa;pwd=";

  public TestClass()

{

  DBOperator myado = DBOperatorFactory.GetDBOperator(_sConn, DBEnum.SQLServer);

  DataSet _ds = myado.GetDataSet("select * from [employee]");

}

}

 

下载地址(包括源代码):原来的空间清理了,需要的话给我留言吧,我给大家发送email

 

上面的类图用Visual Studio 2005 生成的我觉得挺好看的,呵呵。另外我的在.net framework 1.1 .net framework 2.0 上都运行了没问题(2.0 测试的还不充分)。回想原来我用VB写的ADO COM组件,这个真是高出许多啊。

供大家参考了,欢迎讨论。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.Net 下数据库操作类库

现在3层开发模式里面表示层, 业务逻辑层, 数据访问层 现在把数据访问层封装起来做为Class ,实现对数据进行访问的数据库操作类下面是结构组件图先从一个程序说起,再慢慢深入的理解数据操作类的实现pr...
  • lJean
  • lJean
  • 2008年08月02日 14:30
  • 907

ASP.NET数据库公共操作类——快速开发的利器

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security...
  • takeie
  • takeie
  • 2007年05月06日 11:57
  • 736

一个完整的数据库操作工作类库

using System;using System.Collections;using System.Collections.Generic;using System.Text;using Syste...
  • hzj19800817
  • hzj19800817
  • 2008年06月14日 09:32
  • 877

.net framework 类库中必须掌握的命名空间(或者类)

Web开发常用命名空间和类。System.Collections //命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections....
  • zfj1981
  • zfj1981
  • 2010年01月26日 10:16
  • 1762

.Net类库一览

.Net提供了许多类库,这是一个非常庞大的库,可能永远也不可能全部掌握。 不过,了解一个大概,会对.Net的编程会有很大的帮助。首先是System,这是所有.Net里自动生成的类都会using的命名空...
  • zzdzzd1029
  • zzdzzd1029
  • 2007年01月31日 12:29
  • 838

一些.NET 项目中常用的类库

一些.NET 项目中常用的类库
  • csharp25
  • csharp25
  • 2016年02月16日 22:37
  • 2547

.NET FrameWork 3.5和4.0类库结构图

一、概述 Microsoft .NET Framework 类库是一个综合性的类型集合,用于应用程序开发的一些支持性的通用功能。开发人员可以使用它开发多种模式的应用程序,可以是命令行形式,也可以图形界...
  • zhouqt
  • zhouqt
  • 2016年06月07日 21:22
  • 2494

.net常用类库

命名空间描述System其中的类型是为所胡应用程序使用的一些基本类型System.Collections其中的类型用于管理对象集合。包括常用的集合类型,例如堆栈、队列、散列表等。System.Diag...
  • tuwen
  • tuwen
  • 2010年04月24日 17:28
  • 2954

C# 链接sql数据库通用类库

using System;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace Farm...
  • yilvchaxiang
  • yilvchaxiang
  • 2010年03月14日 12:20
  • 583

PHP 好用的数据库操作类

开始学习PHP之后。一直再使用的PHP mysql数据库操作类。
  • jsj2009145520
  • jsj2009145520
  • 2015年04月10日 11:15
  • 813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET 下的数据库操作类库(MyADO)
举报原因:
原因补充:

(最多只允许输入30个字)