MyBatis3.0整合Spring

MyBatis3.0应该说出现已经很久了,基于iBatis2.0的基础上也有不少的用户.在使用细节上是有区别的.Spring3.0发布的时候由于他还没有发布稳定的版本,所以Spring只对2.0版本提供支持.如果要使用只能用项目本身提供的解决方案.想必作者们应该对2.0之前的整合方式很有了解,现在提供的方案可以直接不用写DAO实现类的代码.

整合需要的包是mybatis-spring-x.x.x.jar.接着在spring的配置文件中配置sqlSessionFactory.然后将他注入给所需要的DAO.关于DAO的实现有多种方法.个人倾向于直接用配置,不写DAO的实现代码.

  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2. <property name="dataSource" ref="dataSource"></property>  
  3. <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>  
  4. </bean>  
  5. <bean id="sysUserDao" class="org.mybatis.spring.mapper.MapperFactoryBean">  
  6. <property name="mapperInterface" value="cn.lihk.example.s2sm.dao.SysUserDao"></property>  
  7. <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
  8. </bean>  

上述的配置声明了一个sqlSessionFactory.它需要一个数据源.DAO的实现类都是通过MapperFactoryBean这个工厂Bean来获得的.它的mapperInterface就是dao的接口.如此配置后就可以不用写DAO的实现类了.我们来看看sqlSessionFactory的configLocation,这个是Mybatis的总配置文件.配置的是sqlSession的全局属性.

  1. <configuration>  
  2.     <settings>  
  3.         <setting name="cacheEnabled" value="true"></setting>  
  4.         <setting name="lazyLoadingEnabled" value="true"></setting>  
  5.         <setting name="multipleResultSetsEnabled" value="true"></setting>  
  6.         <setting name="useColumnLabel" value="true"></setting>  
  7.         <setting name="useGeneratedKeys" value="true"></setting>  
  8.         <setting name="defaultExecutorType" value="SIMPLE"></setting>  
  9.         <setting name="defaultStatementTimeout" value="25000"></setting>  
  10.     </settings>  
  11. <mappers>  
  12. <mapper resource="cn/lihk/example/s2sm/dao/mapper/SysUserDao.xml"></mapper>  
  13.     </mappers>  
  14. </configuration>  

上面是sqlMapConfig.xml的配置内容他配置了一些全局属性和具体的mapper映射文件.这个mapper映射文件是具体对象和SQL映射关系的配置.

  1. <mapper namespace="cn.lihk.example.s2sm.dao.SysUserDao">  
  2.     <resultmap type="cn.lihk.example.s2sm.vo.SysUser" id="sysUserResultMap">  
  3.         <id property="id" column="id">  
  4.         <result property="name" column="name">  
  5.         <result property="note" column="note">  
  6.     </result></result></id></resultmap>  
  7. <select id="getSysUsers" resultmap="sysUserResultMap">  
  8.         select * from sys_user  
  9.     </select>  
  10. <select id="getSysUserById" resulttype="cn.lihk.example.s2sm.vo.SysUser">  
  11.         select * from sys_user where id=#{id}  
  12.     </select>  
  13. </mapper>  

上面配置了一个Mapper.和2.0版本是很类似的.注意的一点是namespace必须是接口的全局限定名,否则会报错.这个估计是要看源码才能明白为什么如此设置.经过上述配置后基本上整合就算完成了.和2.0版本+spring+daozero是非常相像的.只不过现在是mybatis官方的方案.不需要daozero或者类似的项目.关于数据源,事务控制的方式还是跟普通的spring配置没有区别.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值