如何封装你的数据访问层.ppt

上传人:cl****1 文档编号:567494586 上传时间:2024-07-20 格式:PPT 页数:15 大小:217.50KB
返回 下载 相关 举报
如何封装你的数据访问层.ppt_第1页
第1页 / 共15页
如何封装你的数据访问层.ppt_第2页
第2页 / 共15页
如何封装你的数据访问层.ppt_第3页
第3页 / 共15页
如何封装你的数据访问层.ppt_第4页
第4页 / 共15页
如何封装你的数据访问层.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《如何封装你的数据访问层.ppt》由会员分享,可在线阅读,更多相关《如何封装你的数据访问层.ppt(15页珍藏版)》请在金锄头文库上搜索。

1、如何封装你的数据访问层By 为何要封装数据访问层先看传统数据库操作代码:先看传统数据库操作代码: string strConnection = Server=(local);UID=sa;Pwd=sa;Database=northwind; SqlConnection conn = new SqlConnection(strConnection); conn.Open(); string sql = insert into Shippers values(123,3215125); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteN

2、onQuery(); this.Label1.Text = ok; cmd.Connection.Close();/始终记住在页完成执行之前关闭与数据模型的连接。如果不关闭连接,则可能会在等待页实例被垃圾回收处理期间不经意地超过连接限制。 缺点:缺点: 1 代码放在一个事件中,紧耦合,不利于扩展; 2 手工管理连接,需要显示地关闭打开连接; 3 不利于连接的共享,性能效率低下; 4 SQL语句、连接字符串外露,不利于数据库安全; 5 代码需要重复书写,不利于重用;为何要封装数据访问层还有更多的原因,影响着程序的复用性和软件的灵活性:还有更多的原因,影响着程序的复用性和软件的灵活性:数据库类型是

3、变动的比如,如果使用ACCESS数据库,那么在程序中会使用System.Data.OleDb命名空间下的类,如OleDbConnection,OleDbParameter,OleDbDataAdapter等等。如果现在要求支持SQLServer数据库该怎么办呢?那么就需要修改现有的大量的代码,将System.Data.OleDb下的类全部替换为System.Data.SqlClient命名空间下的类,即使是使用“查找/替换”进行批量的修改,也是非常繁琐,也很容易出错。当然还会存在一些错误,比如,OleDb是使用“?”来传递参数的,而SQLServer中使用的是命名参数(如,“para”)。因此

4、还需要修改大量的SQL语句。主键生成的规则不同不同应用环境下,可能使用不同的主键生成策略,有的需要使用数据库唯一键,有的使用表唯一键,有的需要加入时间或其他标记,有的只使用简单的计数器就可以,有的使用GUID如果程序中写死了,下次环境变了,需要使用新的规则时,就又得改代码喽。数据库连接管理控制连接的数目,有时时单个连接,有时是若干个连接,有时使用连接池我们需要采用这样的数据访问架构如何设计自己的数据访问层?可以自己设计;可以自己设计;有兴趣的同学自己研究;网上有很多设计参考范例;可以使用微软设计的企业开发库;微软企业开发库介绍1.什么是EnterpriseLibrary?EnterpriseL

5、ibrary由一组应用程序块组成(ApplicationBlock),每个应用程序块旨在解决开发企业级应用程序时的某一方面2.EnterpriseLibrary有什么用?提高企业级应用程序的可维护性和扩展性。最大限度的重用,可作为公司的积累。这些是微软的基准代码,可以通过学习源代码,提高编程能力。建立更优雅更灵活的企业级应用程序.3.EnterpriseLibrary由哪些部分组成?目前的Enterprise由七个部分组成。它们分别:1).配置应用程序块2).数据访问应用程序块3).安全应用程序块4).加密应用程序块5).缓存应用程序块6).异常处理应用程序块7).日志应用程序块4.为什么要使

6、用EnterpriseLibrary?可以说它涵盖了开发任何企业级应用都要用到的基础部分,是最佳实践。它的源代码是可以修改和扩展而不用遵照任何协议。这样就可以定制自己的应用程序块。微软企业开发库介绍5.各个应用程序块的依赖关系是怎样的?各个应用程序块的依赖关系是怎样的? 可以看到EnterpriseLibrary的核心是ConfigurationApplicationBlock.其它应用程序块都对它有依赖. 微软企业开发库介绍6.如何开始使用如何开始使用Enterprise Library?1).从前面的地址下载EnterpriseLibrary,安装,运行QuickStart.通过这个可以获

7、得一些直观印象.2).开始学习ConfigurationApplicationBlock.阅读ConfigurationApplicationBlock文档3).从http:/下载视频讲座4).观看视频讲座,单步调试ConfigurationApplicationBlock的QuickStart项目.5).自己动手从头做一个自己的例子.6).开始学习别的ApplicationBlock.7).将ApplicationBlock应用到项目中.企业开发库数据访问块的使用加载数据:企业开发库数据访问块的使用调用存储过程示例:protectedvoidButtonUpdate_Click(object

8、sender,EventArgse)Databasedb=DatabaseFactory.CreateDatabase();stringspName=Region_InsertDeleteUpdate;DbCommanddbCommand=db.GetStoredProcCommand(spName);db.AddInParameter(dbCommand,Action,DbType.Int32,2);db.AddInParameter(dbCommand,RegionID,DbType.Int32,Convert.ToInt32(this.TextBox_ID.Text);db.AddInP

9、arameter(dbCommand,RegionDescription,DbType.String,this.TextBox_descrp.Text);db.ExecuteNonQuery(dbCommand);如何封装微软企业数据库访问块如何封装微软企业数据库访问块对于后台表Region表的操作(增删修改查)如何进行。用实体类封装数据访问块Region是一个关系表,也对应一个实体;Region.cs文件文件usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Securi

10、ty;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingMicrosoft.Practices.EnterpriseLibrary.Configuration;usingMicrosoft.Practices.EnterpriseLibrary.Data;用实体类封装数据访问块namespaceReGionpublicclassgionEntity#regionprotectedfieldsp

11、rotectedintm_regionID;protectedstringm_regionDescription=String.Empty;#endregion#regionpublicpropertiespublicintRegionIDgetreturnm_regionID;setm_regionID=value;publicstringRegionDescriptiongetreturnm_regionDescription;setm_regionDescription=value;#endregion#regionpublicmethodspublicvirtualvoidPopula

12、te(IDataReaderreader)trym_regionID=reader.GetInt32(0);m_regionDescription=reader.GetString(1);catchthrownewFormatException(DataReaderformaterror!);publicvirtualvoidPopulate(DataRowrow)trym_regionID=(int)row0;m_regionDescription=(string)row1;catchthrownewFormatException(DataRowformaterror!);#endregio

13、n前台ASPX页面的代码:usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingReGion;usingMicrosoft.Practices.EnterpriseLibrary.Co

14、nfiguration;usingMicrosoft.Practices.EnterpriseLibrary.Data;前台ASPX页面的代码:publicpartialclassTestDAAB:System.Web.UI.PageprotectedvoidPage_Load(objectsender,EventArgse)Gion.gionEntitymygionEntity=newgionEntity();mygionEntity.RegionID=333;mygionEntity.RegionDescription=aaaaa;Gion.gionAccessObj.Insert(mygionEntity);Response.Write(ok!);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号