您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > mybatis与spring的整合配置说明
mybatis是ibatis的升级版,spring也有自带mybatis的orm。所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。下面介绍3中方式1,只是用mybatis3。2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory)。3,使用ibatis2.3+spring(使用spring自带的ibatis)spring的orm包中只有ibatis,没有mybatis。而mybatis和ibatis还是有些区别的,比如配置文件属性不同。第一种方式(只使用mybatis):1)jar包:cglib-2.2.jarasm-3.1.jarmysql-connector-java-3.1.13.jarmybatis-3.0.5.jarjunit.jar2)mybatis配置文件:[html]viewplaincopy1.?xmlversion=1.0encoding=UTF-8?!DOCTYPEconfigurationPUBLIC-//mybatis.org//DTDConfig3.0//EN!--参数设置--4.settings5.!--这个配置使全局的映射器启用或禁用缓存--6.settingname=cacheEnabledvalue=true/7.!--全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载--8.settingname=lazyLoadingEnabledvalue=true/9.!--当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载--10.settingname=aggressiveLazyLoadingvalue=true/11.!--允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)--12.settingname=multipleResultSetsEnabledvalue=true/13.!--使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动--14.settingname=useColumnLabelvalue=true/15.!--允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby)--16.settingname=useGeneratedKeysvalue=true/17.!--指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况)--18.settingname=autoMappingBehaviorvalue=PARTIAL/19.!--配置默认的执行器。SIMPLE执行器没有什么特别之处。REUSE执行器重用预处理语句。BATCH执行器重用语句和批量更新--20.settingname=defaultExecutorTypevalue=SIMPLE/21.!--设置超时时间,它决定驱动等待一个数据库响应的时间--22.settingname=defaultStatementTimeoutvalue=25000/23./settings24.25.!--别名定义--26.typeAliases27.typeAliasalias=pageAccessURLtype=com.lgm.mybatis.model.PageAccessURL/28./typeAliases29.30.environmentsdefault=development31.!--环境配置1,每个SqlSessionFactory对应一个环境--32.environmentid=development133.!--34.事务配置type=JDBC、MANAGED35.1.JDBC:这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。36.2.MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。37.默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false38.39.--40.transactionManagertype=JDBC/41.!--42.transactionManagertype=MANAGED43.propertyname=closeConnectionvalue=false/44./transactionManager45.--46.!--47.数据源类型:type=UNPOOLED、POOLED、JNDI48.1.UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。49.不同的数据库对这个的表现也是不一样的,所以对某些数据库来说配置数据源并不重要,这个配置也是闲置的50.2.POOLED:这是JDBC连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。51.这是一种当前Web应用程序用来快速响应请求很流行的方法。52.3.JNDI:这个数据源的实现是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用53.--54.dataSourcetype=UNPOOLED55.propertyname=drivervalue=com.mysql.jdbc.Driver/56.propertyname=urlvalue=jdbc:mysql://localhost:3306/appdb/57.propertyname=usernamevalue=root/58.propertyname=passwordvalue=123456/59.!--60.默认连接事务隔离级别61.propertyname=defaultTransactionIsolationLevelvalue=/62.--63./dataSource64.65./environment66.67.!--环境配置2--68.environmentid=development269.transactionManagertype=JDBC/70.dataSourcetype=POOLED71.propertyname=drivervalue=com.mysql.jdbc.Driver/72.propertyname=urlvalue=jdbc:mysql://localhost:3306/appdb/73.propertyname=usernamevalue=root/74.propertyname=passwordvalue=123456/75.!--在任意时间存在的活动(也就是正在使用)连接的数量--76.propertyname=poolMaximumActiveConnectionsvalue=10/77.!--任意时间存在的空闲连接数--78.propertyname=poolMaximumIdleConnectionsvalue=5/79.!--在被强制返回之前,池中连接被检查的时间--80.propertyname=poolMaximumCheckoutTimevalue=20000/81.!--这是给连接池一个打印日志状态机会的低层次设置,还有重新尝试获得连接,这些情况下往往需要很长时间(为了避免连接池没有配置时静默失败)--82.propertyname=poolTimeToWaitvalue=20000/83.!--发送到数据的侦测查询,用来验证连接是否正常工作,并且准备接受请求。--84.propertyname=poolPingQueryvalue=NOPINGQUERYSET/85.!--这是开启或禁用侦测查询。如果开启,你必须用一个合法的SQL语句(最好是很快速的)设置poolPingQuery属性--86.propertyname=poolPingEnabledvalue=false/87.!--这是用来配置poolPingQuery多次时间被用一次。这可以被设置匹配标准的数据库连接超时时间,来避免不必要的侦测--88.propertyname=poolPingConnectionsNotUsedForvalue=0/89./dataSource90./environment91.92.!--环境配置3--93.environmentid=development394.transactionManagertype=JDBC/95.dataSourcetype=JNDI96.propertyname=data_sourcevalue=java:comp/env/jndi/mybatis/97.propertyname=env.encodingvalue=UTF8/98.!--99.propertyname=initial_contextvalue=/100.propertyname=env.encodingvalue=UTF8/101.--102./dataSource103./environment104.105./environments106.107.!--映射文件,存放sql语句的配置文件--108.mappers109.mapperresource=com/lgm/mybatis/config/pageAccessURL.xml/110./mappers111.112./configuration其中environments属性是数据源环境配置,可以配置多个数据源配置。每个environment属性代表一种配置方式。加载事务配置transactionManager和数据源配置dataSource。transactionManager有两种配置方式,分别是JDBC和MANAGED,详细说明见配置注释。dataSource有三种配置方式,分别是UNPOOLED、POOLED、JNDI,详细说明见配置注释。typeAliases定义别名,使用指定的别名来定义。注:关于JNDI的配置,见tomcat的几种JNDI配置方法3)mybatis的sql映射配置文件:[html]viewplaincopy1.?xmlversion=1.0encoding=UTF-8?2.!DOCTYPEmapperPUBLIC-//mybatis.org//DTDMapper3.0//EN3.=pageAccessURL6.7.!--8.cache-配置给定命名空间的缓存。9.cache-ref–从其他命名空间引用缓存配置。10.resultMap–最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。11.parameterMap–已经被废弃了!老式风格的参数映射。内联参数是首选,这
本文标题:mybatis与spring的整合配置说明
链接地址:https://www.777doc.com/doc-3649064 .html