- <?xml
version="1.0" encoding="UTF-8" ?> -
- <!DOCTYPE
sqlMapConfig -
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" -
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> -
- <sqlMapConfig>
-
-
<!-- -
<properties resource="properties/database.properties"/> -
可将SqlMap中的<property />内容写到配置文件中,从此处引用。 -
SQL Map配置文件及其每个映射文件都可以使用占位符${} -
--> -
-
<settings -
cacheModelsEnabled="true" -
enhancementEnabled="true" -
lazyLoadingEnabled="true" -
errorTracingEnabled="true" -
maxRequests="32" -
maxSessions="10" -
maxTransactions="5" -
useStatementNamespaces="false" -
/> -
- <!--
-
<settings -
-
cacheModelsEnabled="true" -
是否启用SqlMapClient上的缓存机制。 -
建议设为"true" -
-
enhancementEnabled="true" -
是否针对POJO启用字节码增强机制以提升 -
getter/setter的调用效能,避免使用Java -
Reflect所带来的性能开销。 -
同时,这也为Lazy Loading带来了极大的性能 -
提升。 -
建议设为"true" -
-
lazyLoadingEnabled="true" -
是否启用延迟加载机制,建议设为"true" -
-
errorTracingEnabled="true" -
是否启用错误日志,在开发期间建议设为"true" -
以方便调试 -
-
maxRequests="32" -
最大并发请求数(Statement并发数) -
-
maxSessions="10" -
最大Session数。即当前最大允许的并发 -
SqlMapClient 数。 -
maxSessions设定必须介于 -
maxTransactions和maxRequests之间,即 -
maxTransactions<maxSessionsmaxSessions=<maxRequests -
-
maxTransactions="5" -
最大并发事务数 -
-
useStatementNamespaces="false" -
是否使用Statement命名空间。 -
这里的命名空间指的是映射文件中, sqlMap节点 -
的namespace属性,如在上例中针对t_user -
表的映射文件sqlMap节点: -
<sqlMap namespace="User"> -
这里,指定了此sqlMap节点下定义的操作均从 -
属于"User"命名空间。 -
在useStatementNamespaces="true"的情 -
况下,Statement调用需追加命名空间,如: -
sqlMap.update("User.updateUser",user); -
否则直接通过Statement名称调用即可,如: -
sqlMap.update("updateUser",user); -
但请注意此时需要保证所有映射文件中, -
Statement定义无重名。 -
/> -
-
--> -
-
-
<transactionManager type="JDBC" commitRequired="false"> -
-
<!-- -
<transationManager>元素让您为SQL Map配置事务管理服务。 -
属性type指定所使用的事务管理器类型。 -
这个属性值可以是一个类名,也可以是一个别名。 -
包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。 -
-
JDBC:通过常用的Connection commit()和rollback()方法,让JDBC管理事务。 -
-
JTA:本事务管理器使用一个JTA全局事务,使SQL Map的事务包括在更大的事务范围内, -
这个更大的事务范围可能包括了其他的数据库和事务资源。 -
这个配置需要一个UserTransaction属性,以便从JNDI获得一个UserTransaction。 -
-
EXTERNAL:这个配置可以让您自己管理事务。您仍然可以配置一个数据源, -
但事务不再作为框架生命周期的一部分被提交或回退。 -
这意味着SQL Map外部应用的一部分必须自己管理事务。 -
这个配置也可以用于没有事务管理的数据库(例如只读数据库)。 -
-
--> -
-
<dataSource type="DBCP"> -
<!-- -
<datasource>是<transactionManager>的一部分, -
为SQL Map数据源设置了一系列参数。 -
目前SQL Map架构只提供三个DataSource Factory,但您也可以添加自己的实现。 -
-
SIMPLE: SimpleDataSourceFactory为DataSource提供了一个基本的实现, -
适用于在没有J2EE容器提供DataSource的情况。 -
它基于iBatis的SimpleDataSource连接池实现。 -
-
DBCP: DbcpDataSourceFactory实现使用Jakarta DBCP -
(Database Connection Pool)的DataSource API提供连接池服务。 -
适用于应用/Web容器不提供DataSource服务的情况,或执行一个单独的应用。 -
-
JNDI: JndiDataSourceFactory在应用容器内部从JNDI Context中 -
查找DataSource实现。当使用应用服务器,并且服务器提供了容器管理的连 -
接池和相关DataSource实现的情况下,可以使用JndiDataSourceFactory。 -
使用JDBC DataSource的标准方法是通过JNDI来查找。 - -->
-
-
-
<property name="JDBC.Driver" -
value="net.sourceforge.jtds.jdbc.Driver"/> -
<property name="JDBC.ConnectionURL" -
value="jdbc:jtds:sqlserver://127.0.0.1:1433/EXTFFM"/> -
<property name="JDBC.Username" value="sa"/> -
<property name="JDBC.Password" value="sa"/> -
-
<!-- -
SQL Map配置文件拥有唯一的<properties>元素, -
用于在配置文件中使用标准的Java属性文件(name=value)。 -
这样做后,在属性文件中定义的属性可以作为变量在SQL Map配置文件 -
及其包含的所有SQL Map映射文件中引用。 -
-
例如,如果属性文件中包含属性: -
driver=org.hsqldb.jdbcDriver -
SQL Map配置文件及其每个映射文件都可以使用占位符${driver} -
来代表值org.hsqldb.jdbcDriver。例如: -
<property name="JDBC.Driver" value="${driver}"/> -
--> -
-
-
<property name="Pool.MaximumActiveConnections " value="10"/> -
<!-- 数据库连接池可维持的最大容量。缺省值: 10 --> -
-
<property name="Pool.MaximumIdleConnections" value="5"/> -
<!-- 数据库连接池中允许的挂起(idle)连接数。缺省值: 5 --> -
-
<property name="Pool.TimeToWait" value="500" /> - <!--
-
当线程试图从连接池中获取连接时,连接池中无可用连接可供使用, -
此时线程将进入等待状态,直到池中出现空闲连接。 -
此参数设定了线程所允许等待的最长时间(单位:毫秒)缺省值: 10 - -->
-
-
<property name="Pool.MaximumCheckoutTime" value="120000"/> -
- <!--
-
数据库联接池中,连接被某个任务所允许占用的最大时间, -
如果超过这个时间限定,连接将被强制收回(单位:毫秒)。 -
缺省值: 20000 - -->
-
-
-
<property name="Pool.PingQuery" value="seslct 1 from FFM_Sequence" /> -
<!-- -
数据库连接状态检测语句。 -
某些数据库在连接在某段时间持续处于空闲状态时会将其断开。 -
而连接池管理器将通过此语句检测池中连接是否可用。 -
它对性能的影响较大,应小心使用。检测语句应该是一个最简化的无逻辑SQL, -
如:select 1 from dual缺省值: N/A - -->
-
-
<property name="Pool.PingEnabled" value="false" /> -
<!-- 是否允许检测连接状态。缺省值: false --> -
-
<property name="Pool.PingConnectionsOlderThan " value="1" /> -
<!-- 对持续连接时间超过设定值(毫秒)的连接进行检测。缺省值: 0 --> -
-
<property name="Pool.PingConnectionsNotUsedFo r" value="1" /> -
<!-- 对空闲超过设定值(毫秒)的连接进行检测。缺省值: 0 --> -
</dataSource> -
</transactionManager> -
-
<sqlMap resource="com/witnessj/ffm/domain/IBatisSqlMap/SequenceSqlMap.xml"/> -
<!-- -
<sqlMap>元素用于包括SQL Map映射文件和其他的SQL Map配置文件。 -
每个SqlMapClient对象使用的所有SQL Map映射文件都要在此声明。 -
映射文件作为stream resource从类路径或URL读入。 -
您必须在这里指定所有的SQL Map文件。 -
-
List more here... -
<sqlMap resource="com/mydomain/data/Order.xml"/> -
<sqlMap resource="com/mydomain/data/Documents.xml"/> -
--> -
- </sqlMapConfig>
ibatis sqlmapconfig 配置详解
最新推荐文章于 2021-01-27 00:29:50 发布