自己动手写ASP.NET ORM框架(二):AdoHelper支持多数据库操作的封装(2)
中的静态方法CreateDbCommand(),根据AdoHelper类中获取到配置文件配置的数据库类型DbType,来创建对应数据库类型的Command对象,通过反编译System.Data.dll,我们可以知道SqlCommand、OracleCommand、OleDbCommand等等Command都实现了IDbCommand接口,这样我们将创建好的对象以IDbCommand接口类型返回即可。
line 3:using (IDbConnection conn = DbFactory.CreateDbConnection(connectionString)) 根据数据库连接字符串connectionString,通过DbFactory.CreateDbConnection方法创建数据库连接对象,这里同样使用到了接口IDbConnection ,好处多多就不在此罗嗦了。 line 4:PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); 这里是将所有cmd对象所需的参数都传入PrepareCommand方法中,将参数给cmd对象,为执行数据操作做好准备工作,具体实现看代码块1-3: // <summary> 这里代码主要实现了将打开后的数据库连接对象conn、SQL语句cmdText、事物对象trans、执行命令的类型cmdType、以及命令参数cmdParms全部赋给cmd对象,为执行数据操作作准备。
这里是cmd对象执行命令、清除cmd对象中的参数、返回执行操作后所影响的行数。 分析完这个方法后,其它的方法都是大同小异,也无需再进行分析了,这里主要的重点就是采用接口编程,DbFactory是重点,这样用的好处我们能看得到,我们不需要在更换数据库类型的时候去更改任何代码,仅仅只需在web.config中将数据库类型dbType更改,除非你的数据库类型在DbFactory中不支持,即便不支持,也只需在DbFactory中添加少量的几行代码! 至此,ExecuteNonQuery方法已经分析完成,后续还会继续分析AdoHelper类中的其它方法。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |