ibatis配置文件、映射文件详解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ibatis学习笔记(一)sqlMapConfig.xml文件详解1.sqlMapConfig.xml配置文件详解:Xml代码1.?xmlversion=1.0encoding=UTF-8?2.!DOCTYPEsqlMapConfig3.PUBLIC-//iBATIS.com//DTDSQLMapConfig2.0//EN4.=true!--是否启用缓存机制--8.lazyLoadingEnabled=true!--是否启用延迟加载机制--9.enhancementEnabled=true!--是否启用字节码增强机制--10.errorTracingEnabled=true!--是否启用错误处理机制--11.maxRequests=32!--最大并发请求数--12.maxSessions=10!--最大Session数--13.maxTransactions=5!--最大并发事务数--14.useStatementNamespaces=true/!--是否启用名称空间--15.transactionManagertype=JDBC!--定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL)--16.dataSourcetype=SIMPLE!--type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI)--17.propertyname=JDBC.Drivervalue=com.mysql.jdbc.Driver/18.propertyname=JDBC.ConnectionURLvalue=jdbc:mysql://localhost/test/19.propertyname=JDBC.Usernamevalue=root/20.propertyname=JDBC.Passwordvalue=wyq/21.propertyname=Pool.MaximumActiveConnectionsvalue=10/!--连接池维持的最大容量--22.propertyname=Pool.MaximumIdleConnectionsvalue=5/!--连接池允许挂起的最大连接--23.propertyname=Pool.MaximumCheckoutTimevalue=120000/!--连接被某个任务所允许占用的最大时间--24.propertyname=TimeToWaitvalue=500/!--线程允许等待的最大时间--25.26./dataSource27./transactionManager28.sqlMapresource=com/wyq/map/userMap.xml/29./sqlMapConfig一transactionManager节点设置transactionManagerab定义了ibatis的事务管理器,目前提供了以下几种选择:1)JDBC通过传统JDBCConnection.commit/rollback实现事务支持.2)JTA使用容器提供的JTA服务实现全局事务管理.3)EXTERNAL外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制.此时ibatis将把所有事务委托给外部容器进行管理.此外,通过Spring等轻量级容量实现事务的配置化管理也是一个不错的选择.二dataSource节点dataSource从属于transactionManager,用于设定ibatis运行期使用DataSource属性.type属性:dataSource元素的type属性指定了dataSource的实现类型.可选项目:1)SIMPLE:SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制,对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.JDBC使用数据库自己的事务(局部事务),connect.beginTranstion(),connect.commit()等.2)DBCP基于ApacheDBCP连接池组件实现的DataSource封装,当无容器提供DataSource服务时,建议使用该选项,对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory.JTA:使用jta事务管理器管理事务(全局事务),使用userTranstion对象.3)JNDI使用J2EE容器提供的DataSource实现,DataSource将通过指定的JNDIName从容器中获取.对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.Ibatis不控制事务,事务交由外部控制,一般在CTM,或spring托管事务中使用.JNDI的配置大部分都在应用服务器中进行,所以在ibatis中的配置相对简单(1)jdbc事务控制的JNDI配置Xml代码1.transctionManagertype=JDBC2.dataSourcetype=JNDI3.propertyname=DataSourcevalue=java:comp/env/jdbc/myDataSource/4./dataSource5./transctionManager(2)JTA事务控制的JNDI配置Xml代码1.transctionManagertype=JTA2.propertyname=UserTransactionvalue=java:/ctx/con/UserTransaction/3.dataSourcetype=JNDI4.propertyname=DataSourcevalue=java:comp/env/jdbc/myDataSource/5./dataSource6./transctionManagersqmMap节点指定了映射文件的位置,配置文件中可以定义多个sqlMap元素,以指定项目内所包含的所有映射文件.ibatis学习笔记(二)sqlMapConfig.xml文件详解ibatis基础代码包括:1.ibatis实例配置一个典型的配置文件如下(具体配置项目的含义见后):?xmlversion=1.0encoding=UTF-8?!DOCTYPEsqlMapConfigPUBLIC-//iBATIS.com//DTDSQLMapConfig2.0/[url][/url]sql-map-config-2.dtsqlMapConfigsettingscacheModelsEnabled=trueenhancementEnabled=truelazyLoadingEnabled=trueerrorTracingEnabled=truemaxRequests=32maxSessions=10maxTransactions=5useStatementNamespaces=false/transactionManagertype=JDBCdataSourcetype=SIMPLEpropertyname=JDBC.Drivervalue=com.p6spy.engine.spy.P6SpyDriver/propertyname=JDBC.ConnectionURLvalue=jdbc:mysql://localhost/sample/propertyname=JDBC.Usernamevalue=user/propertyname=JDBC.Passwordvalue=mypass/propertyname=Pool.MaximumActiveConnectionsvalue=10/propertyname=Pool.MaximumIdleConnectionsvalue=5/propertyname=Pool.MaximumCheckoutTimevalue=120000/propertyname=Pool.TimeToWaitvalue=500/propertyname=Pool.PingQueryvalue=select1fromACCOUNT/propertyname=Pool.PingEnabledvalue=false/propertyname=Pool.PingConnectionsOlderThanvalue=1/propertyname=Pool.PingConnectionsNotUsedForvalue=1//dataSource/transactionManagersqlMapresource=com/ibatis/sample/User.xml//sqlMapConfig⑴Settings节点cacheModelsEnabled是否启用SqlMapClient上的缓存机制。建议设为trueenhancementEnabled是否针对POJO启用字节码增强机getter/setter的调用效能,避免Reflect所带来的性能开销。同时,这也为LazyLoading带来提升。建议设为trueerrorTracingEnabled是否启用错误日志,在开发期间建议设为true以方便调试lazyLoadingEnabled是否启用延迟加载机制,建议设为truemaxRequests最大并发请求数(Statement并发数)maxTransactions最大并发事务数maxSessions最大Session数。即当前最大允许的并发SqlMapClient数。useStatementNamespaces是否使用Statement命名空间。这里的命名空间指的是映射文件中,sqlMap节的namespace属性,如在上例中针对t_use表的映射文件sqlMap节点:sqlMapnamespace=User这里,指定了此sqlMap节点下定义的操作均属于User命名空间。在useStatementNamespaces=true的情况下,Statement调用需追加命名空间,如:sqlMap.update(User.updateUser,user);否则直接通过Statement名称调用即可,如:sqlMap.update(updateUser,user);但请注意此时需要保证所有映射文件中,Statement定义无重名。transactionManager节点transactionManager节点定义了ibatis的事务管理器,目前提供了以下几种选择:JDBC通过传统JDBCConnection.commit/rollback实现事务支持。JTA使用容器提供的JTA服务实现全局事务管理。EXTERNAL外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制。此时ibatis将把所有事务委托给外部容器进行管理。dataSource节点dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性。type属性:dataSource节点的type属性指定了dataSource的实现类型。可选项目:SIMPLE:SIMPLE是ibatis内置的dataSource实

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功