• 欢迎访问本网站,技术教程,资源分享,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入东蓬莱!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏东部蓬莱吧

MyBatis Spring整合配置映射接口类与映射xml文件

后台开发 Jokul 2年前 (2019-12-07) 83次浏览 0个评论 扫描二维码

spring整合MyBatis使用到了mybatis-spring,在配置mybatis映射文件的时候,一般会使用MapperScannerConfigurer,MapperScannerConfigurer会自动扫描basePackage指定的包,找到映射接口类和映射XML文件,并进行注入。配置如下:

1 <!-- 数据源 -->    
2 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">    
3     <property name="driverClass" value="${${database.type}.jdbc.driverClassName}"/>    
4     <property name="jdbcUrl" value="${${database.type}.jdbc.url}"/>    
5     <property name="properties" ref="dataSourceProperties"/>    
6     <property name="autoCommitOnClose" value="true"/>    
7     <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>    
8     <property name="initialPoolSize" value="${cpool.minPoolSize}"/>    
9     <property name="minPoolSize" value="${cpool.minPoolSize}"/>   
10     <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>   
11     <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>   
12     <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>   
13     <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>   
14 </bean>   
15    
16 <!--基于注解的事务管理-->   
17 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
18     <property name="dataSource" ref="dataSource"/>   
19 </bean>   
20    
21 <tx:annotation-driven transaction-manager="transactionManager"/>   
22    
23    
24 <bean id="lazySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">   
25     <property name="dataSource" ref="dataSource"/>   
26     <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>  
<!-- 采用configLocation方式 Mybatis配置文件保留 --> 
27 </bean>   
28    
29 <!-- 扫描mybatis映射接口类 -->   
30 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">   
31     <property name="basePackage" value="com.test.dsm"/>   
32     <property name="sqlSessionFactoryBeanName" value="lazySqlSessionFactory"/>   
33 </bean>   

这个配置的前提条件是:映射接口类文件(.java)和映射XML文件(.xml)需要放在相同的包下(com.test.dsm)

如果myBatis映射XML文件和映射接口文件不放在同一个包下怎么办呢?(当然放在一个包里肯定可以)

如果在不同的包下,那就需要手动配置XML文件的路径了,只需要修改SqlSessionFactoryBean配置即可:

<bean id="lazySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    <property name="dataSource" ref="dataSource"/>  
    <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。  
         *是个通配符,代表所有的文件,**代表所有目录下 -->  
    <property name="mapperLocations" value="classpath:com/test/mapper/mysql/**/*.xml" />   
<!--  采用mapperLocation mybatis配置文件可以删除-->
</bean> 

添加一个mapperLocations属性,指定加载xml文件的路径。

classpath:表示在classes目录中查找;

*:通配符表示所有文件

**:表示所有目录下;


东部蓬莱 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MyBatis Spring整合配置映射接口类与映射xml文件
喜欢 (0)
[支付宝]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址