IBatis ORM框架的总配置文件SqlMapConfig.xml 详细信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!--
1. cacheModelsEnabled 是否启动sqlMapClient上的缓存机制;
2. enhancementEnabled是否针对POJO启用字节码增强机制以提升getter/setter的调用效能,
避免使用Java Reflect所带来的性能开销,同时也为Lazy Loading带来了极大的性能提升;
3. errorTracingEnabled 是否启用错误日志;在开发期间建议设为“true”以方便调试
4. lazyLoadingEnabled 是否启动延迟加载机制
5. maxRequests 最大并发请求数(Statement并发数)
5. maxTransactions 最大并发事务
6. maxSessions 最大Session数,即当前最大允许的并发sqlMapClient数(介于maxRequests和maxTransactions之间)
7. useStatementNamespaces 是否使用Statement命名空间(为true时,需要追加命名空间)
-->
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<!--
transactionManager 节点定义了ibatis的事务管理器
1. JDBC:通过传统JDBC Connection.commit/rollback实现事务支持
2. JTA:使用容器提供的JTA服务实现全局事务管理
3. EXTERNAL:外部事务管理,如EJB中使用ibatis,通过EJB的部署配置即可实现自动事务管理机制
此时ibatis将所有事务委托给外部容器管理
-->
<transactionManager type="JDBC">
<!--
dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性
type属性: dataSource节点的type属性指定了dataSource的实现类型
1. SIMPLE:
SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制, 对应ibatis 实现类为
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。
2. DBCP:
基于Apache DBCP连接池组件实现的DataSource 封装,当无容器提供DataSource 服务时,
建议使用该选项,对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。
3. JNDI:
使用J2EE 容器提供的DataSource 实现,DataSource 将通过指定的JNDI Name 从容器中获取。
对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory。
-->
<dataSource type="SIMPLE">
<!-- JDBC驱动 -->
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
<!-- 数据库URL -->
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.241.27:1521:orcl" />
<!-- 数据库用户名 -->
<property name="JDBC.Username" value="aaa" />
<!-- 数据库密码 -->
<property name="JDBC.Password" value="aaa" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<!-- 指定映射文件的位置,配置中可出现多个sqlMap节点,以指定项目内所有映射文件 -->
<sqlMap resource="com/ibatis/Ibatis.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>
<!--
1. cacheModelsEnabled 是否启动sqlMapClient上的缓存机制;
2. enhancementEnabled是否针对POJO启用字节码增强机制以提升getter/setter的调用效能,
避免使用Java Reflect所带来的性能开销,同时也为Lazy Loading带来了极大的性能提升;
3. errorTracingEnabled 是否启用错误日志;在开发期间建议设为“true”以方便调试
4. lazyLoadingEnabled 是否启动延迟加载机制
5. maxRequests 最大并发请求数(Statement并发数)
5. maxTransactions 最大并发事务
6. maxSessions 最大Session数,即当前最大允许的并发sqlMapClient数(介于maxRequests和maxTransactions之间)
7. useStatementNamespaces 是否使用Statement命名空间(为true时,需要追加命名空间)
-->
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<!--
transactionManager 节点定义了ibatis的事务管理器
1. JDBC:通过传统JDBC Connection.commit/rollback实现事务支持
2. JTA:使用容器提供的JTA服务实现全局事务管理
3. EXTERNAL:外部事务管理,如EJB中使用ibatis,通过EJB的部署配置即可实现自动事务管理机制
此时ibatis将所有事务委托给外部容器管理
-->
<transactionManager type="JDBC">
<!--
dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性
type属性: dataSource节点的type属性指定了dataSource的实现类型
1. SIMPLE:
SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制, 对应ibatis 实现类为
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。
2. DBCP:
基于Apache DBCP连接池组件实现的DataSource 封装,当无容器提供DataSource 服务时,
建议使用该选项,对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。
3. JNDI:
使用J2EE 容器提供的DataSource 实现,DataSource 将通过指定的JNDI Name 从容器中获取。
对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory。
-->
<dataSource type="SIMPLE">
<!-- JDBC驱动 -->
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
<!-- 数据库URL -->
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.241.27:1521:orcl" />
<!-- 数据库用户名 -->
<property name="JDBC.Username" value="aaa" />
<!-- 数据库密码 -->
<property name="JDBC.Password" value="aaa" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<!-- 指定映射文件的位置,配置中可出现多个sqlMap节点,以指定项目内所有映射文件 -->
<sqlMap resource="com/ibatis/Ibatis.xml" />
</sqlMapConfig>