早就听说过ibatisnet,用它打架构非常好,虽然偶尔也看下相关资料,但是都没有消化,还是不能运用到实际中去.今天我要好好的学习下ibatisnet.
IBatisNET从名字就可以看出,他是从Java的IBatis开源项目转过来的,由于Java的开源项目很多,所以,现在.NET学习Java的很多的开源项目,纷纷将java的项目转移到.net旗下,比较有名有:Hibernate-->NHibernate,Spring -->Spring.Net,IBatis -->IBatisNet等.现在IBatisNET已经是属于Apache下的一个子项目了.最新版本已经1.3了.
IBatisNet是一个功能强大实用的SQL Map工具,不是ORM工具。它是将SQL语句映射成.NET对象,同时将这个.Net对象与ASP.NET页面中的数据结合起来,这样就可以达到这个.NET类最大的重用性和灵活性。
DAOFactory也是IBatisNet提供的一个Component。用来动态的配置DAO接口的实现类,这样当业务需求更改的时候就可以只通过XML来改变DAO的实现,而不需要重新编译程序。
所以对于这样一个构架中:
1. Web层是通过FormBean来显示和获取数据。
2. 业务层是通过IBatis映射的.NET类来实现数据表示的。
3. DAO层是通过DAOFactory语IBatis映射的.NET类来表示的。
iBatis基本的运行环境配置主要由两个文件组成,分别是SqlMap.config和Provider.config。它们是必需的两个配置文件,基中SqlMap.config的功能类似于web.config或者app.config,是iBatis核心的配置文件,它的存放路径也跟应用程序配置文件一样,必须放在应用程序的运行目录下并且它的文件名是保留的,不可改变的。而Provider.config是一个数据驱动提供类的配置,它的文件名是可以随意改变的,因为通过SqlMap.config的一个配置节可以配置它的引用。
SqlMap.config包括以下一些主要配置,根据需要,有些配置节并不是必须的.
1.protities:
可以根据需要配置一些常量属性。如果这些属性有很多的话可以单独写一个文件里面,再通过resource(或url,
embedded
分别是引用url和编译在程序中的资源文件)属性引用进来。如:
<protities resource="http://www.cnblogs.com/database.config">
<protity key="useStatementNamespaces" value="false" />
</protities>
这个配置节是可选的.
2.settings:包括三个配置段:
<setting useStatementNamespaces="${useStatementNamespaces}" />
<setting cacheModelsEnabled="true" />
<setting validateSqlMap="false" />
useStatementNamespaces:配置在使用语句ID的时候要不要加命名空间.例中${useStatementNamespaces}就是使用protities中的一个属性,默认为false.
cacheModelsEnabled:配置要不要起用ibaits的缓存模型,默认是true.
validateSqlMap:配置要不要启示验证映射文件,默认是false.
3.providers:配置数据驱动提供类配置文件的路径和文件名.
<proders resource="providers.config" />
4.database:数据库信息.包括使用那些数据库驱动和数据库连接字符串的配置.
<provider name="sqlServer2.0" />
<datasource name="iBatisNet" connectionString="" />
5.alias:类型别名的配置.为了更方便的使用类,就需在这里进行配置可使类名更短.
<alias>
<typeAlias alias="ArrayList" type="System.Collections.ArrayList,mscorlib" />
</alias>
6.typeHandlers.
7.sqlMaps.用来包含当前已经写好的并且需要用到的数据类映射文件.
<sqlMaps>
<sqlMap resource="" />
</sqlMaps>
或
<sqlMaps embedded="" />