- <? 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< maxSessions maxSessions = < 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.PingConnectionsNotUsedFor" 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 发布