基于.NET平台的分层架构实战(八)—数据访问层的第二种实现:SQLServer+存储过程

来源:互联网 发布:linux c 编译环境 编辑:程序博客网 时间:2024/05/17 02:06

     在上一篇中,讨论了使用SQL构建数据访问层的方法,并且针对的是Access数据库。而这一篇中,将要创建一个针对SQLServer数据库的数据访问层,并且配合存储过程实现。

      曾经有朋友问我使用SQL和存储过程在效率上的差别,惭愧的是我对这方面没有研究,也没有实际做过测试。通过查阅资料,发现在一般情况下,存储过程的效率由于使用SQL,但是也不绝对,也发现有的朋友测试时发现在特定情况下SQL的效率优于存储过程,所以这个问题不能一概而论。

      好,废话不多说,这里先列出使用存储过程构建数据访问层的一般步骤:
      1.创建新工程
      2.创建数据库
      3.编写相应存储过程
      4.编写数据库辅助类
      5.实现数据访问层

创建新工程
      在开始所有开发工作前,我们需要在解决方案下新建一个工程,叫SQLServerDAL,用于存放所有SQLServer数据访问层的代码。

创建数据库
      首先,我们要根据前文设计的数据库,在SQLServer中创建相应的数据库及数据表。我使用的是SQLServer2005,使用企业管理器创建,创建方法不再赘述。

编写存储过程
      数据库创建完成后,我们就要编写存储过程了。由于数据访问层接口已经确定,所以需要哪些存储过程也很好确定。例如数据访问层接口中有一个添加管理员方法,那么就一定有一个存储过程实现这个功能。
      还是以管理员模块为例,经过简单分析,需要一下存储过程:

      插入管理员记录
      删除管理员记录
      更新管理员信息
      按ID取得管理员记录
      按用户名及密码取得管理员记录
      按用户名取得管理员记录
      取得全部管理员记录

      创建这些存储过程的SQL代码如下:
 

插入管理员记录


 

删除管理员记录


 

修改管理员信息


 

按ID取得管理员


 

按用户名和密码取得管理员


 

按用户名取得管理员


 

取得全部管理员信息


编写数据库辅助类
      由于访问数据库的代码很相似,这里我们仍需要编写一个数据库辅助类,来将常用代码封装起来,方便复用。虽然在这里只使用到了存储过程,但是为了扩展性考虑,这个数据库辅助类仍然包含了通过SQL访问数据库的方法。具体实现如下:

SQLServerDALHelper.cs:
 

SQLServerDALHelper


实现数据访问层
      最后仍以管理员模块为例,看一下具体数据访问层的实现。

AdminDAL.cs:
 

AdminDAL
原创粉丝点击