在sql server数据库编写通用数据访问方法--

在sql server数据库编写通用数据访问方法--

ID:21265257

大小:92.50 KB

页数:12页

时间:2018-10-20

在sql server数据库编写通用数据访问方法--_第1页
在sql server数据库编写通用数据访问方法--_第2页
在sql server数据库编写通用数据访问方法--_第3页
在sql server数据库编写通用数据访问方法--_第4页
在sql server数据库编写通用数据访问方法--_第5页
资源描述:

《在sql server数据库编写通用数据访问方法--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在SQLServer数据库编写通用数据访问方法>>  在负责咨询工作的过去6年中,我曾多次听说关于数据访问和操作方面的问题,它时刻困扰着用户:如何编写应用程序,以便只需对其进行很少的改动或不进行改动即可使用数据库服务器x、y和z?由于知道数据访问层仍然是现代应用程序的最关键部分,并且通常是经验不足的开发人员的头号敌人,因此我的第一反应始终是:根本办不到!  面对着人们惶惶不安的面孔以及使用Microsoft在ADO中提供的通用数据访问方法如何?这样的问题,我决定针对此问题提供更详细的说明以及建议的解决方案。  问题在于,如

2、果应用程序是较小的原型,或者如果并发用户较少并且数据访问逻辑比较简单,那么即使您选择下面这些最简单的方法,也不会遇到任何问题:使用RAD工具(如DataEnvironmentinMicrosoft®VisualBasic®6.0),或某些一揽子解决方案(如ActiveX®DataControl和其他第三方组件),这些解决方案通常会隐藏应用程序与特定数据源之间进行的复杂交互。然而,当用户数量增加使得必须解决并发操作问题时,由于频繁使用动态记录集、服务器端光标以及不必要的锁定策略,导致出现许多性能问题。

3、为达到用户目标而必须对系统所做的设计和代码更改将花费您大量的时间,因为您从开始时就没有考虑过这一问题。  使用通用数据访问方法  在将ADO可靠地并入MDAC(MicrosoftDataAccessponents2.1版)后,Microsoft掀起了通用数据访问的使用高潮。其主导思想是向开发人员展示,通过使用简单的对象模型(连接、命令和记录集),可以编写出能够与各种不同的数据源(无论是关系数据源还是非关系数据源)连接的应用程序。文档(以及当时的大多数文章和示例)中通常未曾提及的是,即使使用相同的数据访问技术,各种数据源的可

4、编程性和特征也千差万别。  其结果是,在需要从多个数据源获取数据的应用程序中,最简单的方法是使用所有数据源所提供的功能的共同点,但因此会失去使用数据源特定选项的好处,即为访问和操作各种RDBMS中的信息提供最佳方法。  我对该方法始终存在的怀疑是,经过与我的客户进行更详细的分析后,我们通常一致认为与应用程序中处理显示和业务逻辑的其他部分相比,与数据源进行交互的只是应用程序很小的一部分。通过进行精心的模块化设计,可以将RDBMS特定代码隔离在一些容易互换的模块中,从而避免对数据访问使用通用方法。然而,我们可以使用非常特定的数

5、据访问代码(根据数据源的不同,使用存储过程、命令批处理和其他特性),而不触及其他大多数应用程序代码。这总是提醒大家:正确的设计是编写可移植的有效代码的关键。  ADO.将一些重要的变化引入到数据访问编码领域,如专用.数据提供程序这样的概念。使用特定的提供程序,可以绕过为数众多但有时没必要的一系列软件接口和服务(它们是OLEDB和ODBC层在数据访问代码与数据库服务器之间插入的内容),从而以最佳方式连接到数据源。但每个数据源仍然存在不同的特征和特性(具有不同的SQLDialect),且编写高效的应用程序仍然必须使用这些特定特

6、征而不是共同点。从可移植性观点看来,托管和非托管的数据访问技术仍然非常类似。  除利用数据源的唯一特征外,编写良好数据访问层所必需的其他规则对每个数据源通常都是相同的:  •在可能的情况下使用连接池机制。  •节约使用数据库服务器的有限资源。  •注意网络的往返。  •在适当的情况下,增强执行计划的重复使用率并避免重复编译。  •使用适当的锁定模型管理并发性。  从我使用模块化设计方法的个人经验来看,整个应用程序中专用于处理特定数据源的代码量不会超过总量的10%。显而易见,

7、这比仅仅更改配置文件中的连接字符串更复杂,但我认为,这样做会获得性能收益,因此这是一个可接受的折衷办法。  使用基本接口  此处的目标是使用抽象,并将特定于特殊数据源的代码封装在类层中,从而使应用程序的其他部分独立于后端数据库服务器或免受其影响。  .Frameand、IDataReader等)。另一个选项是创建一组类(数据访问层),用于管理应用程序的所有数据访问逻辑(例如,使用CRUD范例)。为检查这两种可能性,我们首先从基于North;usingSystem.Data;usingSystem.Data.mon;usin

8、gSystem.Data.SqlClient;usingSystem.Data.OleDb;using12345下一页>>>>这篇文章来自..,。System.Data.OracleClient;namespaceDAL{ publicenumDatabaseType {Access,SQLServer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。