mybatis和Spring的集成

 Spring暂未提供整合myBatis的功能,目前只能使用myBatis提供的mybatis-spring整合类包。不过从功能上来说,mybatis-spring完全符合Spring的风格,功能上也没有任何区别。 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <beans …>  
  3. <beans …>  
  4. <context:component-scan base-package="com.sample.dao.mybatis" />  
  5.     <context:component-scan base-package="com.sample.service.mybatis" />  
  6.     <context:property-placeholder location="classpath:jdbc.properties" />  
  7.     <bean id="dataSource"   
  8.         class="org.apache.commons.dbcp.BasicDataSource"  
  9.         destroy-method="close"   
  10.         p:driverClassName="${jdbc.driverClassName}"  
  11.         p:url="${jdbc.url}"  
  12.         p:username="${jdbc.username}"  
  13.         p:password="${jdbc.password}" />  
  14.           
  15.     <bean id="sqlSessionFactory"   
  16.         class="org.mybatis.spring.SqlSessionFactoryBean" ①  
  17.         p:dataSource-ref="dataSource"  
  18.         p:configLocation="classpath:myBatisConfig.xml"/> ②  
  19. </beans>   



    mybatis-spring类包提供了一个SqlSessionFactoryBean,以便通过Spring风格创建myBatis的SqlSessioinFactory,如①所示。只需要注入数据源并指定myBatis的总装配置文件就可以了,如②所示。 
如果在myBatis总装配置文件mybatisConfig.xml中指定SQL映射文件,必须逐个列表所有的SQL映射文件,比较烦琐。是否可以像Spring加载Hibernate映射文件一样按资源路径匹配规则扫描式加载呢?答案是肯定的,SqlSessionFactoryBean提供了mapperLocations属性,支持扫描式加载SQL映射文件。 
    先将映射文件匹配从mybatisConfig.xml中移除,然后通过如下便捷的方式加载SQL映射文件: 

Xml代码   收藏代码
  1. <bean id="sqlSessionFactory"   
  2.         class="org.mybatis.spring.SqlSessionFactoryBean"   
  3.         p:dataSource-ref="dataSource"  
  4.         p:configLocation="classpath:myBatisConfig.xml"  
  5.         p:mapperLocations="classpath:com/sample/domain/mybatis/*.xml"/>  


    这样,SqlSessionFactoryBean将扫描com/sample/domain/mybatis类路径并加载所有以xml为后缀的映射文件。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值