今天看了许多网上的同行写的关于Ibatis.NET的文章,本来以为同NHibernate一样,是一个完全的ORM框架,了解之后发觉不是,Ibatis.NET走的是中间路线,是一个功能强大实用的SQL Map工具,不是ORM工具,它将SQL语句映射成.NET对象,让我们既能在程序逻辑中以完全面向对象的思想进行数据的操作,底层也能细粒度的对数据库操作进行优化.

简言之,iBATIS 由两个单独的框架组成。可以将 Data Mapper 框架专门用于 OR 映射,OR 映射是 .NET域对象到SQL的映射。DAO 框架为应用程序提供了一个简洁一致的访问基础数据的方法。

iBATIS.NET Data Mapper 框架 (Data Mapper)

Data Mapper 是执行 SQL 并将结果映射回对象的框架,它使您不必手工执行此操作。

Data Mapper 框架不要求使用任何特殊版本的 .NET对象。您不必实现任何接口或生成任何代码,不必为其他一些基本对象创建子类或遵循任何奇怪的惯例,也不必学习特定于该框架的辅助查询语言。

可以使用一个简单并直接的 XML 格式来定义 iBATIS.NET 将 .NET对象映射到数据库的方式。可以直接用 SQL 定义所需的具体查询,并有选择地使用任何特定于正使用的数据库引擎的专有 SQL。此功能允许您使用您想要的方式来映射对象和执行连接。

iBATIS.NET Data Access Objects 框架(DAO 框架)

DAO 框架的主要目标是抽象化应用程序的数据访问层和持久层的表示方式位置,使它们远离应用程序的业务逻辑。DAO 框架允许在应用程序中定义负责数据中心操作的接口。

例如,如果应用程序使用直接的 ADO.NET 来获得持久性,则 DAO 框架的目标是抽象这些类和接口的使用,使它们远离应用程序,并下移到持久层中。

如果应用程序出于某种原因使用 HTTP GET 和 POST 来获得和存储数据,则 DAO 框架的用途变成抽象化类(比如 HttpUrlConnection)的使用,使它们远离应用程序的业务层。然后应用程序可以使用 DAO 接口在数据上执行操作,这些接口的实现被抽象化,远离业务逻辑。这些实现可以从数据库、Web 服务或其他任何源中获得数据。

DAO 框架不依赖于 Data Mapper 框架的使用。您可以选择在一个项目中同时使用这两个框架(成对使用它们相当不错),或者也可以单独使用每个框架。

posted on 2007-01-20 17:46  mswu  阅读(542)  评论(0)    收藏  举报