最近有个项目使用了IBatisNet,稍微细致的研究了一下,也落俗套的写了一些教程,希望促进共同交流
1。先交代一下何为IBatisNet
IBatisNet是一个ORM(Object Relational Mapping,对象关系映射)框架,着重于ORM中的M(Mapping),通过使用XML文档在sql语句和实体对象之间建立映射。是IBatis的.NET版本
2 。IBatisNet配置文件详解
SqlMap.config Map配置文件
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<settings>
<setting useStatementNamespaces="false"/> 是否使用sqlMap节点中的namespace
<setting cacheModelsEnabled="true"/> 是否启用缓存机制
<setting validateSqlMap="false"/> 是否需要使用SqlMapConfig.xsd schema验证隐射
</settings>
<database>
<provider name="sqlServer1.1"/> provider获取providers.config中对应的属性
<dataSource name="ConnectString" connectionString="server=.;database=Test;user id=sa;password=sa;Connection Reset=FALSE;Min Pool Size=1;Max Pool Size=100"/>
数据库链接
</database>
<sqlMaps>
<sqlMap resource="maps/Member.xml"/> Map文件加载的路径,如果要加载多个,按此格式写下去
</sqlMaps>
</sqlMapConfig>
2.providers.config 数据库链接配置文件
<?xml version="1.0" encoding="utf-8"?>
<providers xmlns="http://ibatis.apache.org/providers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<clear/>
<provider
name="sqlServer1.0"
enabled="false"
assemblyName="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
/>
<provider
name="sqlServer1.1"
enabled="true" //默认数据库设置为true
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
/>
<providers>
可以获取官方文件,获得相应数据库的provider