Mapper.java 与 Mapper.xml 如何对应
问题描述:
某项目中检索 HbPkgEntityMapper.java 对应的 .xml 时有两个同名不同包的.xml
而Mapper.xml文件中<mapper namespace= "">
namespace 均为该 mapper.java 的路径,无法确认此时调用的是哪个对应的Mapper.xml
spring-mybatis.xml
<!-- sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dynDataSource" p:typeAliasesPackage="com.jrd.packet.api.rule.model"
p:mapperLocations="classpath*:com/**/mapping/*Mapper.xml">
<property name="configLocation" value="classpath:conf/mybatis-config.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<!-- 配置要扫描的UserMapper.xml -->
<!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" -->
<!-- p:basePackage="com.jrd.mapper" p:sqlSessionFactoryBeanName="sqlSessionFactory"
/> -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.jrd.packet.*.*.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
- sqlSessionFactory 中有相应配置
- MapperScannerConfigurer :将 会 查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean
- MapperFactoryBean :
- basePackage 属性为映射器接口文件设置基本的包路径
- 使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 属性来设置正确的 bean 名称来使用