Mapper.java 与 Mapper.xml 如何对应

Mapper.java 与 Mapper.xml 如何对应


问题描述:

某项目中检索 HbPkgEntityMapper.java 对应的 .xml 时有两个同名不同包的.xml
而Mapper.xml文件中 namespace 均为该 mapper.java 的路径,无法确认此时调用的是哪个对应的Mapper.xml


spring-mybatis.xml
    
    <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>

    
    
    
    <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 名称来使用

参考资料

  • SpringMVC之MapperScannerConfigurer详解

你可能感兴趣的:(MyBatis)