`
goodsense
  • 浏览: 30642 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mybatis和Spring的集成

    博客分类:
  • Java
阅读更多

 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为后缀的映射文件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics