ibatis学习笔记解读

上传人:人*** 文档编号:508987667 上传时间:2024-02-24 格式:DOC 页数:17 大小:191KB
返回 下载 相关 举报
ibatis学习笔记解读_第1页
第1页 / 共17页
ibatis学习笔记解读_第2页
第2页 / 共17页
ibatis学习笔记解读_第3页
第3页 / 共17页
ibatis学习笔记解读_第4页
第4页 / 共17页
ibatis学习笔记解读_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《ibatis学习笔记解读》由会员分享,可在线阅读,更多相关《ibatis学习笔记解读(17页珍藏版)》请在金锄头文库上搜索。

1、配置文件 2iBaits 中 SqlMapClientTemplate的使用 8iBatis2 之 SqlMap 配置总结( 18 条) 10parameterMap 15配置文件(1) jdbc 连接的属性文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql:/localhost:3306/test username=root password=roots(2) 总配置文件 Settings 节点参数描述cacheModelsEnabled 是否启用 SqlMapClient 上的缓存机制。建议设为 true enhancementEnabled 是否

2、针对 POJO 启用字节码增强机制以提升 getter/setter 的 调用效能, 避免使用 Java Reflect 所带来的性能开销。 同时,这也为 Lazy Loading 带 来了极大的性能提升。建议设为 true errorTracingEnabled 是否启用错误日志,在开发期间建议设为 true 以方便调试 lazyLoadingEnabled 是否启用延迟加载机制,建议设为 true maxRequests 最大并发请求数( Statement 并发数) maxTransactions 最大并发事务数maxSessions 最大 Session 数。即当前最大允许的并发 Sq

3、lMapClient 数。 maxSessions 设定必须介于 maxTransactions 和 maxRequests 之间,即 maxTransactionsmaxSessions= maxRequestsuseStatementNamespaces 是否 使用 Statement 命名空间。这里的命名空间指的是映射文件中, sqlMap 节点的 namespace 属性,如在上例中针对 t_user表的映射文件 sqlMap 节点: 这里,指定了此 sqlMap 节点下定义的操作均从 属于 User 命名空间。在 useStatementNamespaces=true的情况下, St

4、atement 调用需追加命名空间 transactionManager 节点 sqlMap.update(User.updateUser,user); 否则直接通过 Statement 名称调用即 sqlMap.update(updateUser,user); 但请注意此时需要保证所有映射定义无重名。如:文件中, Statement transactionManager 节点定义了 ibatis 的事务管理器,目前 提供了以下几种选择:. JDBC通过传统 JDBC Cmit/rollback 实现事务支持。. JTA 使用容器提供的 JTA 服务实现全局事务管理。. EXTERNAL外部事

5、务管理,如在EJB中使用ibatis ,通过EJB的部署配置即可实现自动的事务管理机制。此时 ibatis 将把所有事务委托给外部容器进行管理。 此外,通过 Spring 等轻量级容器实现事务的配置化管理也是一个不错的选 择。关于结合容器实现事务管理,参见“高级特性”中的描述。 dataSource 节点 dataSource 从属于 transactionManager 节点,用于设定 ibatis 运行期使 用的 DataSource 属性。type 属性: dataSource 节点的 type 属性指定了 dataSource 的实现类型 可选项目:. SIMPLE :SIMPLE是i

6、batis 内置的dataSource实现,其中实现了一个简单的数据库连接池机制,对应 ibatis 实现类为 com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。. DBCP:基于 Apache DBCP 连接池组件实现的 DataSource 封装,当无容器提供DataSource 服务时,建议使用该选项,对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。. JNDI :使用 J2EE 容器提供的 DataSource 实现, Da

7、taSource 将通过指定的JNDI Name从容器中获取。对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFacto ry 。dataSource 的子节点说明( SIMPLE&DBCP):参数描述JDBC.Driver JDBC 驱动。如: org.gjt.mm.mysql.DriverJDBC.ConnectionURL 数据库 URL 。如: jdbc:mysql:/localhost/sample如果用的是 SQLServer JDBC Driver ,需要在url 后追加SelectMethod=Curs

8、or 以获得JDBC事务的多Statement 支持。 JDBC.Username 数据库用户名JDBC.Password 数据库用户密码Pool.MaximumActiveConn 数据库连接池可维持的最大容量。ectionsPool.MaximumIdleConnections数据库连接池中允许的挂起( idle )连接数。以上子节点适用于SIMPLE和DBCP模式,分别针对SIMPLE和DBCP模式的DataSource 私有配置节点如下:SIMPLE:参数描述Pool.MaximumCheckoutTi 数据库联接池中, 连接被某个任务所允许占用的最大时间, 如果超过这个时间限定, 连

9、接将被强制收回。 (毫秒) Pool.TimeToWait 当线程试图 从连接池中获取连接时,连接池中无可用连接可供使用,此时线程将进入等待状态, 直到池中出现空闲连接。此参数设定了线程所允许等待的最长时间。(毫秒) Pool.PingQuery 数据库连接状态检测语句。 某些数据库在连接在某段时间持续处于空 闲状态时会将其断开。而连接池管理器将通过此语句检测池中连接是否可用。 检测语句应该是一个最简化的无逻辑 SQL 。如“ select 1 from t_user ”,如果执行此语句成功,连接池管理器将认为此连接 处于可用状态。 Pool.PingEnabled 是否允许检测连接状态。Po

10、ol.PingConnectionsOl 对持续连接时间超过设定值(毫秒)的连接进行 derThan 检测。Pool.PingConnectionsNotUsedFor 对空闲超过设定值(毫秒)的连接进行检测。DBCP:参数描述Pool.MaximumWait 当线程试图从连接池中获取连接时,连接池中无 可用连接可供使用,此时线程将进入等待状态, 直到池中出现空闲连接。此参数设定了线程所允 许等待的最长时间。(毫秒)Pool.ValidationQuery 数据库连接状态检测语句。 某些数据库在连接在某段时间持续处于空闲状态 时会将其断开。而连接池管理器将通过此语句检 测池中连接是否可用。检测

11、语句应该是一个最简化的无逻辑 SQL 。 如“ select 1 from t_user ”, 如果执行此语句 成功,连接池管理器将认为此连接处于可用状态。Pool.LogAbandoned 当数据库连接被废弃时,是否打印日志。Pool.RemoveAbandonedTi 数据库连接被废弃的最大超时时间 meout Pool.RemoveAbandoned 当连接空闲时间超过RemoveAbandonedTimeout 时,是否将其废弃。JNDI 由于大部分配置是在应用服务器中进行,因此 ibatis 中的配置相对简单,下面 是分别使用JDBC和JTA事务管理的JDNI配置: 使用 JDBC 事务管理的 JNDI DataSource 配置 sqlMap 节点sqlMap 节点指定了映射文件的位置,配置中可出现多个 sqlMap 节点,以指定 项目内所包含的所有映射文件。ibatis 基础语义XmlSqlMapClientBuilderXmlSqlMapCIie ntBuilder是ibatis 2.0之后版本新引入的组件,用以替代 1.x版本中的 XmlSqlMapBuilder 。其作用是根据配置文件创建 SqlMapClient 实例。 SqlMapClientSqlMapCIie nt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号