运用设计模式构建通用数据库访问类

运用设计模式构建通用数据库访问类,第1张

运用设计模式构建通用数据库访问类,第2张

这就需要我们在实际开发过程中再次封装这些数据库访问类。通过这样的封装,不仅可以达到上述目的,还可以减少操作数据库的步骤,减少代码编写量。在这方面,微软为我们提供了Application Block,但遗憾的是,目前只支持Sql Server。这里介绍一种在实际应用中取得非常好效果的实现策略——作者编写的Websharp框架中的数据访问结构。工厂设计模式是使用的主要方法。

我们先来看看Factory的含义:定义一个创建对象的接口,让子类决定实例化哪个类。方法将类的实例化延迟到它的子类。我们可以在这里处理各种数据库的操作。所以我们需要先定义一个接口来操作数据库,然后根据不同的数据库,由类工厂决定实例化哪个类。

接下来,我们先来定义这个访问接口。为了方便说明问题,这里只列举几种方法,其他方法很容易引用添加。

公共接口data access
{
database type database type { get;}//数据库类型
IDB connection db connection { get;}//获取数据库连接
void Open();//打开数据库连接
void Close();//关闭数据库连接

IDB transaction begin transaction();//启动一个事务
int executenonquery(string commandtext);//执行Sql语句
dataset执行dataset(string commandtext);//执行Sql并返回数据集
}

因为DataAccess的具体实现类有一些公共方法,所以我们首先从DataAccess实现一个AbstractDataAccess类,它包含一些公共方法。然后,我们分别为Sql Server、Oracle和OleDb数据库编写了三个具体的数据访问实现类:

公共密封类MSSQL数据访问:抽象数据访问
{
……//具体实现代码。
}

公共OLEDB数据访问:抽象数据访问
{
……//具体实现代码。
}

类Oracle数据访问:抽象数据访问
{
……//具体实现代码。
}

现在我们已经完成了所需的功能,我们需要创建一个工厂类来实现数据库自动切换的管理。这个类非常简单。它的主要功能是根据数据库类型返回适当的数据库操作类。

public密封类data access factory
{
private data access factory(){ }
private static persistence property defaultPersistenceProperty;
public static persistence property DefaultPersistenceProperty
{
get { return DefaultPersistenceProperty;}
set { defaultPersistenceProperty = value;}
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 运用设计模式构建通用数据库访问类

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情