iBatis2配置
1、iBatis的整体配置大概如下:
<?
xml
version
="1.0"
encoding
="GBK"
?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
< sqlMapConfig >
< properties resource ="jdbc.properties" />
< settings cacheModelsEnabled ="true" enhancementEnabled ="true"
lazyLoadingEnabled ="true" maxRequests ="512" maxSessions ="128"
maxTransactions ="32" useStatementNamespaces ="true" />
< transactionManager type ="JDBC" commitRequired ="true" >
<!-- 事务管理器使用的任意名称的键值对配置,可以设置多个 -->
< property name ="" value="" />
< dataSource type ="SIMPLE" >
< property name ="JDBC.Driver" value ="${jdbc.driver}" />
< property name ="JDBC.ConnectionURL" value ="${jdbc.url}" />
< property name ="JDBC.Username" value ="${jdbc.user}" />
< property name ="JDBC.Password" value ="${jdbc.password}" />
</ dataSource >
</ transactionManager >
< sqlMap resource ="com/asiainfo/tdmc/entity/sqlmap/Cfg_code.xml" />
</ sqlMapConfig >
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
< sqlMapConfig >
< properties resource ="jdbc.properties" />
< settings cacheModelsEnabled ="true" enhancementEnabled ="true"
lazyLoadingEnabled ="true" maxRequests ="512" maxSessions ="128"
maxTransactions ="32" useStatementNamespaces ="true" />
< transactionManager type ="JDBC" commitRequired ="true" >
<!-- 事务管理器使用的任意名称的键值对配置,可以设置多个 -->
< property name ="" value="" />
< dataSource type ="SIMPLE" >
< property name ="JDBC.Driver" value ="${jdbc.driver}" />
< property name ="JDBC.ConnectionURL" value ="${jdbc.url}" />
< property name ="JDBC.Username" value ="${jdbc.user}" />
< property name ="JDBC.Password" value ="${jdbc.password}" />
</ dataSource >
</ transactionManager >
< sqlMap resource ="com/asiainfo/tdmc/entity/sqlmap/Cfg_code.xml" />
</ sqlMapConfig >
2、对每一段的解释
a、settings
<
settings
<!-- 数据高速缓存配置,默认为true,将近期使用过的数据保存在内存中,为充分利用该技术,还必须为已映射的语句配置高速缓存模型 -->
cacheModelsEnabled="true"
<!-- 是否使用cglib中那些已经优化的类来提高延迟加载的性能,默认为ture,如果cglib包不存在,则自动禁用 -->
enhancementEnabled="true"
<!-- 延迟加载属性,默认为true,适用于存在相关联的映射语句 -->
lazyLoadingEnabled="true"
<!-- 已废弃,最大的活动请求数 -->
maxRequests="512"
<!-- 已废弃,最大事务相关(线程)请求数 -->
maxSessions="128"
<!-- 已废弃,最大活动事务数 -->
maxTransactions="32"
<!-- 对SQLMap使用命名空间 -->
useStatementNamespaces="true"/>
<!-- 数据高速缓存配置,默认为true,将近期使用过的数据保存在内存中,为充分利用该技术,还必须为已映射的语句配置高速缓存模型 -->
cacheModelsEnabled="true"
<!-- 是否使用cglib中那些已经优化的类来提高延迟加载的性能,默认为ture,如果cglib包不存在,则自动禁用 -->
enhancementEnabled="true"
<!-- 延迟加载属性,默认为true,适用于存在相关联的映射语句 -->
lazyLoadingEnabled="true"
<!-- 已废弃,最大的活动请求数 -->
maxRequests="512"
<!-- 已废弃,最大事务相关(线程)请求数 -->
maxSessions="128"
<!-- 已废弃,最大活动事务数 -->
maxTransactions="32"
<!-- 对SQLMap使用命名空间 -->
useStatementNamespaces="true"/>
b、事务管理器和数据源
<
transactionManager
type
="JDBC"
commitRequired
="true"
>
<!-- 事务管理器使用的任意名称的键值对配置,可以设置多个 -->
< property name ="" value="" />
< dataSource type ="SIMPLE" >
< property name ="JDBC.Driver" value ="${jdbc.driver}" />
< property name ="JDBC.ConnectionURL" value ="${jdbc.url}" />
< property name ="JDBC.Username" value ="${jdbc.user}" />
< property name ="JDBC.Password" value ="${jdbc.password}" />
</ dataSource >
</ transactionManager >
<!-- 事务管理器使用的任意名称的键值对配置,可以设置多个 -->
< property name ="" value="" />
< dataSource type ="SIMPLE" >
< property name ="JDBC.Driver" value ="${jdbc.driver}" />
< property name ="JDBC.ConnectionURL" value ="${jdbc.url}" />
< property name ="JDBC.Username" value ="${jdbc.user}" />
< property name ="JDBC.Password" value ="${jdbc.password}" />
</ dataSource >
</ transactionManager >
transactionManager配置内置的事务管理器,其type类型取值说明如下:
JDBC:基于JDBC的事务管理。
JTA:基于容器的事务管理。
EXTERNAL:提供非事务管理,并家丁管理事务的是应用程序,而不是iBatis
JDBC:基于JDBC的事务管理。
JTA:基于容器的事务管理。
EXTERNAL:提供非事务管理,并家丁管理事务的是应用程序,而不是iBatis
commitRequired是一个非必须的属性,默认为false,为true时要求在释放连接之前必须提交或者回滚操作。
dataSource是用来定义DataSourceFactory的实现类,其type类型取值说明如下:
SIMPLE:简单的数据源工厂,不要jdbc以外的jar包支持。
DBCP:使用jakarta Commons数据库连接池实现。
JNDI:通过JNDI定位的基于容器的数据源。
SIMPLE:简单的数据源工厂,不要jdbc以外的jar包支持。
DBCP:使用jakarta Commons数据库连接池实现。
JNDI:通过JNDI定位的基于容器的数据源。
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/808801,如需转载请自行联系原作者