使用反射+抽象工厂的数据访问(2)
2010-12-31 00:19
169 查看
2、定义针对于不同数据库的工厂类
定义针对于不同数据库的工厂类,一种数据库就需要创建一个相应的类。最主要代码就是创建不同数据库需要使用的对应的Connection,Command等等对象。这些代码很相似,所以最常见的做法就是先定义一个基类,并且在基类中使用分支语句。
例如在基类中创建连接对象的代码:
public IDbConnection CreateConnection(string DataBaseType)
{
switch (DataBaseType )
{
case "SqlServer":
{
return new System.Data.Oledb.SqlConnection(sConnectionString);
}
case "Oracle":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
case "Access ":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
…
}
}
这样的代码没有使用反射机制,类的实例化被“写死”在代码中,也就是说,如果需要添加其他数据库,不得不打开源代码,添加一个分支并重新编译。为了去处这种分支结构,并且在运行时根据系统提供的参数动态实例化数据库对象,我们引入了反射机制。
本文出自 “Apprentice” 博客,请务必保留此出处http://apprentice.blog.51cto.com/2214645/1360591
定义针对于不同数据库的工厂类,一种数据库就需要创建一个相应的类。最主要代码就是创建不同数据库需要使用的对应的Connection,Command等等对象。这些代码很相似,所以最常见的做法就是先定义一个基类,并且在基类中使用分支语句。
例如在基类中创建连接对象的代码:
public IDbConnection CreateConnection(string DataBaseType)
{
switch (DataBaseType )
{
case "SqlServer":
{
return new System.Data.Oledb.SqlConnection(sConnectionString);
}
case "Oracle":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
case "Access ":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
…
}
}
这样的代码没有使用反射机制,类的实例化被“写死”在代码中,也就是说,如果需要添加其他数据库,不得不打开源代码,添加一个分支并重新编译。为了去处这种分支结构,并且在运行时根据系统提供的参数动态实例化数据库对象,我们引入了反射机制。
本文出自 “Apprentice” 博客,请务必保留此出处http://apprentice.blog.51cto.com/2214645/1360591
相关文章推荐
- 使用反射+抽象工厂的数据访问(1)
- 使用反射+抽象工厂的数据访问(3)
- 使用反射+抽象工厂的数据访问(4)
- iOS使用多线程提高数据并发访问 之四
- Enterprise Library 4.1数据访问应用程序块快速入门【6】使用DataSet更新数据库
- 使用指针数组访问一维数组数据
- C# 使用反射访问属性
- 使用反射特性获取类的访问权限
- 使用ODBC数据提供程序访问MSSQL数据库
- 学习使用NHibernate2.1.0Beta1(四)— 创建数据访问项目DAL
- 使用hive访问elasticsearch的数据
- 3第一周课后练习·阅读计划(2)-使用指针来访问私有数据成员
- 不同应用程序域中访问数据!(反射)
- 使用反射获取model数据并打印,调试用
- C#使用反射访问私有构造函数
- 使用反射编写万能的DAO实现任意数据表的增删改查
- 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
- 使用表达式树和反射来访问对象属性的性能比较
- VB2005(1、使用ADO.NET访问数据库--Windows窗体中的数据体系结构)
- 使用反射来完成数据插入