.NET 数据访问架构指南 3
点击次数:22 次 发布日期:2008-11-26 10:39:56 作者:源代码网
|
源代码网推荐 源代码网推荐 在本文剩余部分的大部分代码片段中,都使用了SqlCommand对象调用存储过程去执行数据库操作。在一些例子中,你见不到SqlCommand对象,因为存储过程名直接传递给了SqlDataAdapter对象,但这仍将导致SqlCommand对象的创建。 源代码网推荐 源代码网推荐 使用存储过程而非SQL语句的原因是: 源代码网推荐 存储过程通常会使性能增加,因为数据库可以优化过程使用的数据访问计划,并对其进行缓存以备将来重用。 源代码网推荐 源代码网推荐 源代码网推荐 在数据库中,存储过程可分别得到保护。客户可以被给予执行某个存储过程的权限,但无权处理底层的表。 源代码网推荐 源代码网推荐 源代码网推荐 存储过程将导致维护简单,因为在一个已部署组件内,修改存储过程通常要比修改硬编码的SQL语句简单。 源代码网推荐 源代码网推荐 源代码网推荐 存储过程增加了一个从底层的数据库结构中提取出的层。存储过程的客户与存储过程的实现细节及底层结构被隔离开了。 源代码网推荐 源代码网推荐 源代码网推荐 存储过程可以降低网络流量,因为SQL语句可以以批处理的方式执行,而不是从客户端发送多个请求。 源代码网推荐 属性与构造函数的比较 源代码网推荐 源代码网推荐 可以通过构造函数参数或直接设置属性来为ADO.NET对象设置具体的属性值。例如,下面的代码片段在功能上是等同的。 源代码网推荐 源代码网推荐 // Use constructor arguments to configure command object 源代码网推荐 SqlCommand cmd = new SqlCommand( "SELECT * FROM PRODUCTS", conn ); 源代码网推荐 // The above line is functionally equivalent to the following 源代码网推荐 // three lines which set properties explicitly 源代码网推荐 sqlCommand cmd = new SqlCommand(); 源代码网推荐 cmd.Connection = conn; 源代码网推荐 cmd.CommandText = "SELECT * FROM PRODUCTS"; 源代码网推荐 源代码网推荐 源代码网推荐 从性能角度来说,两种方法的差别可以忽略,因为设置或获得.net对象的属性比对COM对象执行类似操作要有效得多。 源代码网推荐 源代码网推荐 所作出的选择只是个人爱好和编码风格而已。然而,明确地设置属性的确使代码易于理解(特别是当你不熟悉ADO.NET对象模型时),便于调试。 源代码网推荐 源代码网推荐 注意 过去,VB开发人员被建议避免使用"Dim x As New…"结构创建对象。在COM环境中,这些代码将导致COM对象创建过程的“短路”,产生一些奇妙的和不怎么奇妙的错误。然而,在.NET环境中,这已不再是一个问题。 源代码网推荐 源代码网推荐 管理数据库链接 源代码网推荐 源代码网推荐 数据库链接是一种危险的、昂贵的、有限的资源,特别是在多层Web应用程序中。你必须正确管理你的链接,因为你的方法将极大的影响应用程序的整体升级性。还有,必须仔细考虑在哪儿存放链接字符串。你需要一个可配置的、安全的位置。 源代码网推荐 源代码网推荐 在管理数据库链接和链接字符串时,你应当努力: 源代码网推荐 通过跨多个客户多路复用一池数据库链接来帮助实现应用程序的扩展性。 源代码网推荐 源代码网推荐 源代码网推荐 采用可配置的、高性能的链接池战略。 源代码网推荐 源代码网推荐 源代码网推荐 在访问SQL Server时使用微软Windows操作系统认证。 源代码网推荐 源代码网推荐 源代码网推荐 避免中间层的冒充。 源代码网推荐 源代码网推荐 源代码网推荐 安全地存储链接字符串。 源代码网推荐 源代码网推荐 源代码网推荐 较晚地打开数据库链接,而较早地关闭它们。 源代码网推荐 本节讨论链接池,并帮你选择合适的链接池战略。其它可选方法也是存在的。本节也将考虑如何管理、存储、控制数据库链接字符串。最后,本节还提供了两个编码方案,使用它们将有助于确保链接已可靠关闭,并返回到链接池中。 源代码网推荐 源代码网推荐 链接池 源代码网推荐 源代码网推荐 数据库链接池使应用程序能够重用池中的现有链接,而不是重复地建立对数据库的链接。这种技术将极大地增加应用程序的可扩展性,因为有限的数据库链接可以为很多的客户提供服务。此技术也将提高性能,因为能够避免用于建立新链接的巨大时间。 源代码网推荐 源代码网推荐 数据访问技术,如ODBC和OLE DB,提供了多种形式的链接池,它们可配置到不同级别上。这两种方式对数据库客户端应用程序来说都是透明的。OLE DB链接池经常被称为会话或资源池。 源代码网推荐 源代码网推荐 ADO.NET数据供应器提供了透明的链接池,每种链接池的确切机制对每种供应器来说是不同的。本节讨论的链接池是关于: 源代码网推荐 SQL Server .NET数据供应器 源代码网推荐 源代码网推荐 源代码网推荐 OLE DB .NET数据供应器 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
