论坛首页 Java企业应用论坛

mybatis和Spring的集成

浏览 15910 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-07  
    Spring暂未提供整合myBatis的功能,目前只能使用myBatis提供的mybatis-spring整合类包。不过从功能上来说,mybatis-spring完全符合Spring的风格,功能上也没有任何区别。
<?xml version="1.0" encoding="UTF-8" ?>
<beans …>
<beans …>
<context:component-scan base-package="com.sample.dao.mybatis" />
    <context:component-scan base-package="com.sample.service.mybatis" />
	<context:property-placeholder location="classpath:jdbc.properties" />
	<bean id="dataSource" 
	    class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close" 
		p:driverClassName="${jdbc.driverClassName}"
		p:url="${jdbc.url}"
		p:username="${jdbc.username}"
		p:password="${jdbc.password}" />
		
	<bean id="sqlSessionFactory" 
	    class="org.mybatis.spring.SqlSessionFactoryBean" ①
	    p:dataSource-ref="dataSource"
	    p:configLocation="classpath:myBatisConfig.xml"/> ②
</beans> 



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

    这样,SqlSessionFactoryBean将扫描com/sample/domain/mybatis类路径并加载所有以xml为后缀的映射文件。
  
   发表时间:2012-03-08   最后修改:2012-03-08
[quote=&quot;guidesun&quot;]    Spring暂未提供整合myBatis的功能,目前只能使用myBatis提供的mybatis-spring整合类包。不过从功能上来说,mybatis-spring完全符合Spring的风格,功能上也没有任何区别。

[code=&quot;xml&quot;] ②




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

[code=&quot;xml&quot;]

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


p:        这个从何而来?楼组能给解惑么
0 请登录后投票
   发表时间:2012-03-08  
p是spring提供的命名空间,表示属性property,效果和property一样
0 请登录后投票
   发表时间:2012-03-09  
at1943 写道
p是spring提供的命名空间,表示属性property,效果和property一样



谢谢
  • 大小: 56.2 KB
0 请登录后投票
   发表时间:2012-03-09  
下载 mybatis 官网例子,里面就是最好的集成。
0 请登录后投票
   发表时间:2012-03-13  
最近刚接触mybatis框架,正在慢慢熟悉中,
0 请登录后投票
   发表时间:2012-09-07   最后修改:2012-09-07
谢谢解释~
0 请登录后投票
   发表时间:2012-10-22  
这种使用p:的方式,我还一直没有过,提供了另一种解决思路啊。
我学习过mybatis 官网上宠物商店的demo,集成的确实不错,也是使用自动扫描 注解
0 请登录后投票
   发表时间:2012-11-20  
平常不这样写,一般就按大众写法了,不需要刻意去学什么,照着用就行了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics