从网上下载了一个IBatisNet的Demo,并结合相关文章进行理解学习。
Demo的相关配置文件包括:sqlmap.config, database.config, providers.config, web.config, 以及Person.xml文件。
下面进行学习:
参考文章:
http://www.cnblogs.com/pw/archive/2006/08/08/470060.html
首先了解sqlmap.config
IBatisNet DataMapper是通过XML文件来配置的,配置文件名称我们通常默认为SqlMap.Config,配置文件中指定了我们项目的数据库连接字符串,以及数据库表的映射文件等等.
sqlmap.config文件:
sqlmap.config
<?
xml version="1.0" encoding="utf-8"
?>
<
sqlMapConfig
xmlns
="http://ibatis.apache.org/dataMapper"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
>
<!--
Rem : If used via a DataAccess context, properties tag will be ignored
<properties resource="http://www.cnblogs.com/database.config"/>
-->
<
properties
embedded
="database.config, IBatisNetDemo"
/>
<
settings
>
<
setting
useStatementNamespaces
="${useStatementNamespaces}"
/>
<
setting
cacheModelsEnabled
="true"
/>
<
setting
validateSqlMap
="false"
/>
</
settings
>
<!--
Optional if resource
-->
<
providers
embedded
="providers.config,IBatisNetDemo"
/>
<!--
==== SqlClient configuration =========
-->
<!--
Rem : If used via a DataAccess context, database tag will be ignored
-->
<
database
>
<!--
Optional ( default )
-->
<
provider
name
="sqlServer2.0"
/>
<
dataSource
name
="iBatisNet"
connectionString
="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"
/>
</
database
>
<
sqlMaps
>
<!--
user via embedded
-->
<
sqlMap
embedded
="Map.SqlClient.Person.xml,IBatisNetDemo"
/>
</
sqlMaps
>
</
sqlMapConfig
>
解释:
1.properites
<properties embedded="database.config, IBatisNetDemo"/> 指定properties文件可作为程序集的资源文件进行加载
2.setting
useStatementNamespaces 是否使用Satement命名空间,这里的命名空间指的是映射文件中sqlMap节点的namespace属性
映射文件Person.xml:<sqlMap namespace="Person" xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
cacheModelsEnabled 是否启用DataMapper的缓存机制,针对全部的SqlMap(什么是DataMap的缓存机制?)
validateSqlMap 是否启用SqlMapConfig.xsd schema验证映射文件
3.providers
用于提供数据库驱动配置文件的文件名和路径
<providers embedded="providers.config,IBatisNetDemo"/>
4.database
其中包括两个子元素,分别是provider和datasource
如果在providers.config文件中指定了默认的数据库驱动,那么provider节点就不需要设置了,它的作用是在换数据库驱动时不需要修改providers.config文件。datasource节点用于指定ADO.NET Connection String.
<database>
<!-- Optional ( default ) -->
<provider name="sqlServer2.0"/>
<dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/>
</database>
5.sqlmap
该节点下需列出所有应用程序使用的DataMapper的实例,也就是映射文件。
<sqlMap embedded="Map.SqlClient.Person.xml,IBatisNetDemo"/>
其中,带$号的变量,在database.config中配置,并通过<properties embedded="database.config, IBatisNetDemo"/>加载。
database.config文件:
database.config
<?
xml version="1.0" encoding="utf-8"
?>
<
databaseConfig
xmlns
="http://ibatis.apache.org/dataMapper"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
>
<
settings
>
<
add
key
="userid"
value
="sa"
/>
<
add
key
="password"
value
="1234"
/>
<
add
key
="database"
value
="iBatis"
/>
<
add
key
="datasource"
value
="(local)"
/>
<
add
key
="selectKey"
value
="select @@IDENTITY as value"
/>
<
add
key
="directory"
value
="Maps"
/>
<
add
key
="useStatementNamespaces"
value
="false"
/>
</
settings
>
</
databaseConfig
>
也可以直接把数据库参数写在sqlmap.config文件中,而不需要database.config文件。