ibatis:ibatis配置祥解-拷贝来源: 发布时间:星期日, 2008年12月21日 浏览:84次 评论:0
ibatis基础代码包括:
1. ibatis例子配置 个典型配置文件如下(具体配置项目含义见后): <? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/ "http://www.ibatis.com/dtd/sql-map-config-2.dt <sqlMapConfig > < tings cacheModelsEnabled ="true" enhancementEnabled ="true" lazyLoadingEnabled ="true" errorTracingEnabled ="true" maxRequests ="32" maxSessions ="10" maxTransactions ="5" useStatementNamespaces ="false" /> < transactionManager type ="JDBC" > < dataSource type ="SIMPLE" > < property name ="JDBC.Driver" value ="com.p6spy.engine.spy.P6SpyDriver" /> < property name ="JDBC.ConnectionURL" value ="jdbc:mysql://localhost/sample" /> < property name ="JDBC.Username" value ="user" /> < property name ="JDBC.Password" value ="mypass" /> < 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 resource ="com/ibatis/sample/User.xml" /> </ sqlMapConfig > ⑴ Settings 节点 cacheModelsEnabled 是否启用SqlMapClient上缓存Cache机制 建议设为"true" enhancementEnabled 是否针对POJO启用字节码增强机getter/ter效能避免Reflect所带来性能开销同时这也为Lazy Loading带来提升 建议设为"true" errorTracingEnabled 是否启用日志在开发期间建议设为"true" 以方便调试 lazyLoadingEnabled 是否启用延迟加载机制建议设为"true" maxRequests 最大并发请求数(Statement并发数) maxTransactions 最大并发事务数 maxSessions 最大Session数即当前最大允许并发SqlMapClient数 useStatementNamespaces 是否使用Statement命名空间 这里命名空间指是映射文件中sqlMap节属性如在上例中针对t_use 表映射文件sqlMap节点: <sqlMap ="User"> 这里指定了此sqlMap节点下定义操作均属于"User"命名空间 在useStatementNamespaces="true"情况下Statement需追加命名空间如:sqlMap.update("User.updateUser",user); 否则直接通过Statement名称即可如: sqlMap.update("updateUser",user); 但请注意此时需要保证所有映射文件中Statement定义无重名 transactionManager节点 transactionManager节点定义了ibatis事务管理器目前提供了以下几种选择: JDBC 通过传统JDBC Connection.commit/rollback实现事务支持 JTA 使用容器提供JTA服务实现全局事务管理 EXTERNAL 外部事务管理如在EJB中使用ibatis通过EJB部署配置即可实现自 动事务管理机制此时ibatis将把所有事务委托给外部容器进行管理 dataSource节点 dataSource从属于transactionManager节点用于设定ibatis运行期使用DataSource属性 type属性: dataSource节点type属性指定了dataSource实现类型 可选项目: SIMPLE: SIMPLE是ibatis内置dataSource实现其中实现了个简单 数据库连接池机制对应 ibatis 实现类为 com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory DBCP: 基于Apache DBCP连接池组件实现DataSource封装当无容器提 供DataSource服务时建议使用该选项对应ibatis实现类为 com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory JNDI: 使用J2EE容器提供DataSource实现DataSource将通过指定 JNDI Name从容器中获取对应 ibatis实现类为 com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory dataSource子节点介绍说明(SIMPLE&DBCP): JDBC.Driver JDBC 驱动 如:org.gjt.mm.mysql.Driver JDBC.ConnectionURL 数据库URL 如:jdbc:mysql://localhost/sample 如果用是SQLServer JDBC Driver需要 在url后追加SelectMethod=Cursor以获得 JDBC事务多Statement支持 JDBC.Username 数据库用户名 JDBC.Password 数据库用户密码 Pool.MaximumActiveConnections 数据库连接池可维持最大容量 Pool.MaximumIdleConnections 数据库连接池中允许挂起(idle)连接数 JNDI由于大部分配置是在应用服务器中进行因此ibatis中配置相对简 分别使用JDBC和JTA事务管理JDNI配置: 使用JDBC事务管理JNDI DataSource配置 < transactionManager type ="JDBC" > < dataSource type ="JNDI" > < property name ="DataSource" value ="java:comp/env/jdbc/myDataSource" /> </ dataSource > </ transactionManager > < transactionManager type ="JTA" > < property name ="UserTransaction" value ="java:/ctx/con/UserTransaction" /> < dataSource type ="JNDI" > < property name ="DataSource" value ="java:comp/env/jdbc/myDataSource" /> </ dataSource > sqlMap节点 sqlMap节点指定了映射文件位置配置中可出现多个sqlMap节点以指定 项目内所包含所有映射文件 ibatis基础语义 XmlSqlMapClientBuilder XmlSqlMapClientBuilder是ibatis 2.0的后版本新引入组件用以替代1.x 版本中XmlSqlMapBuilder其作用是根据配置文件创建SqlMapClient例子 SqlMapClient SqlMapClient是ibatis核心组件提供数据操作基础平台SqlMapClient 可通过XmlSqlMapClientBuilder创建: String resource = " com/ibatis/sample/SqlMapConfig.xml " ; Reader reader; reader = Resources.getResourceAsReader(resource); XmlSqlMapClientBuilder xmlBuilder = XmlSqlMapClientBuilder; SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader); "com/ibatis/sample/SqlMapConfig.xml"指明了配置文件在CLASSPATH 中相对路径XmlSqlMapClientBuilder通过接受个Reader类型配置文 [ft=,,]件句捊 0
相关文章读者评论发表评论 |
|