企业库EntLib初识(2)--数据访问应用程序块DataAccessApplicationBlock

  数据访问应用程序块(Data Access Application Block)顾名思义是负责与数据打交道的应用程序块,是企业库的重要组成部分。个人认为它相对于其它的应用程序块来讲,应用范围更广,地位更高。(这里只是做个不恰当的对比,其实每个程序块都同等重要)除非你开发的应用不访问数据库,大概就用不上这个应用程序块了。但我们得记住,它并不是整个企业库的最低层。它依赖于企业库的最低层——配置管理程序块,这个留到以后再细谈了,现在我只是简单使用企业库自带的配置工具(Enterprise Library Configuration)来完成DAAB的配置工作。

  说到这里想再说些题外话,我们知道企业库是由相对独立Application Block演变而成的,在以前的Data Access Application Block我们可能会构建工厂方法模式通过静态方法创建数据库链接。但现在既然企业库已经出炉了,我们也遵循通过配置管理来得到数据库连接这种方式吧。

  首先了解一下DAAB(Data Access Application Block)为我们带来了什么呢?

1--提供了一系列简单有效的方法。让我们通过简单的参数传递便可完成复杂的数据处理逻辑,减少了代码量。
2--数据库透明。对于我们来讲,数据库用的是SQLServer、Oracle还是DB2已经不重要了。通过提供一致的访问模型把各种数据库的数据访问差异封装起来。
3--最佳的ADO.NET实践。因为它是由微软的专职开发小组研发,这个数据访问模型是通过时间验证的,最完整、最高效、最权威的,通过ADO.NET操作数据库的规范。
4--为团队开发提供了一致的、强健的数据访问模型。
……等等。

  接下来我们来简单地体验一下如何使用DAAB:
  (因为时间关系没有配上图,请见谅)
  概括来说,使用DAAB可以抽象为三个步骤,分别是:配置DAAB、实例化数据库、具体数据操作。以后就来展开说明。

  第一部,创建配置信息。如前所述,企业库架构通过配置来创建数据库连接。我们可以使用企业库自带的配置工具(Enterprise Library Configuration)快捷、安全地完成配置工作。具体步骤如下:
     准备工作:这步很重要,我们新建了一个WinForm工程,这个工程得先增加一个项(应用程序配置文件)。这样做是为了直接使用配置工具打开配置文件进行编辑,省去不并要的麻烦。
  1.打开配置工具。(我的是XP系统,企业库版本为Enterprise Library - June 2005)开始菜单->所有程序->Microsoft patterns & practices->Enterprise Library - June 2005->Enterprise Library Configuration
  2.打开应用程序。File->Open Application 选择工程所在目录下的App.config或Web.config文件。
  3.新建DAAB。右键点击刚建的Application->New->Data Access Application Block
  4.配置DAAB参数。这里内容太多,只说说其中几个常用的配置项。首先是数据库实例名称,在“Database Instances”节点下,默认为我们建立了名叫“Database Instance1”的实例名,这个名将用于在程序中创建数据库实例,请改成具有标识性的名字。其次是连接字符串,在“Connection Strings ”节点下,默认也会创造一个,同样,我们也可以改一下名。连接字符串中“Integrated Security”的值默认为True,代表用Windows集成认证(不需要用户名和密码属性),如果我们要用混合认证方式,就要先把值设为False,然后再在所在Connection String中增加用户名和密码两个属性并填充正确的属性值(方法:在具体Connection String节点上右键->New 过程略)。一切就绪便可以确认保存了。

  第二部便是创造数据库实例了。
  准备工作:需要把企业库引用到工程中。因为企业库是开源的,所以我们可以直接引用工程或者引用编译好的DLL。为了说明怎样使用,这里只引用两个关键程序集,分别是Microsoft.Practices.EnterpriseLibrary.Configuration.dll和Microsoft.Practices.EnterpriseLibrary.Data.dll。另外为了简化代码的编写,我们再在需要用到DAAB的地方using一下Microsoft.Practices.EnterpriseLibrary.Data这个命名空间。
  说了这么久终于开始进入高潮了,嘿!当我们需要执行数据库操作前,需要创建数据库实例。使用以下语句:
  Database db = DatabaseFactory.CreateDatabase("Northwind");
  就这一条语句便完成了数据库的连接操作,够简单了吧!不过要注意,这里的Northwind是上一部配置工作中所述的数据库实例名称,而不是要连接的数据库名。数据库名是在数据库实例里的ConnectionStringNode属性所指向的ConnectionString中,和服务器名,用户名,及密码一起定义的。请把这个关系理清。
  另外,Database 的实例,在生命周期内维护着数据库的连接。即当从工厂生产一个数据库实例时,其内部即封闭了ADO.NET Connection的open方法;而当其生命周期结束后(假定在一对花括号内),它将自动调用close方法关闭连接。

  第三部,具体数据库操作。
  DAAB为我们提供了功能强大的,安全高效的方法,但又是因为时间问题不能每每阐述,在这里只用最直接最简单的方法演示一下它的作用,希望日后有时间再跟大家深入探讨DAAB的各种数据库操作。我们这就来做下通过执行SQL语句取得数据集的操作:
  DataSet ds = db.ExecuteDataSet(CommandType.Text,"select * from Employees");
  同样的地,也是一句话搞掂。等到数据库之后要干嘛就留给你自己去想了。

  我们可以看出,使用了DAAB以后数据访问改得空前地简单。但DAAB和整个企业库的内含与价值远远不只这些,不过我相信你对它们的热爱会随着了解而逐步加深的。今天就说到这里了,实在太睏了。晚安!
posted @ 2005-11-07 03:33  黄耀辉  阅读(5582)  评论(25编辑  收藏  举报