详解mybatis-plus的映射。xml路径配置的坑

  

mybatis-plus今天遇到一个问题,就是mybatis没有读取到映射器。xml文件。

  

特此记录一下,问题如下:

        org.apache.ibatis.binding。BindingException:无效的绑定声明(未找到):com.husy.mapper.SystemUserMapper.findUserByName      com.baomidou.mybatisplus.core.override.MybatisMapperMethod SqlCommand美元。你们;init> (MybatisMapperMethod.java: 242)   在com.baomidou.mybatisplus.core.override.MybatisMapperMethod灵活;init> (MybatisMapperMethod.java: 54)   在com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda cachedMapperMethod 0美元(MybatisMapperProxy.java: 65)   java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java: 1660)   com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod (MybatisMapperProxy.java: 65)   com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke (MybatisMapperProxy.java: 60)   在com.sun.proxy。Proxy72美元。findUserByName(未知来源)   在com.husy.service.impl.SystemUserServiceImpl.findUserByName (SystemUserServiceImpl.java: 23)   之前      

  

映射器。xml目录
  

  

详解mybatis-plus的映射。xml路径配置的坑
  

  

代码如下:

  

单元测试

        @Test   公共空间findUser () {   SystemUser SystemUser=systemUserService.findUserByName (“admin”);   System.out.println (systemUser.toString ());   }   之前      

mybatis-puls配置         @EnableTransactionManagement   @ configuration   @MapperScan (“com.husy.mapper”)   公开课MybatisConfig {/* *   * mybatis-plus分页插件   */@ bean   公共PaginationInterceptor PaginationInterceptor () {   返回新PaginationInterceptor ();   }   }   之前      

服务实现         @ service   公共类SystemUserServiceImpl实现SystemUserService {   @ autowired   私人SystemUserMapper usermap;      @Override   公共SystemUser findUserByName(字符串名称){   返回userMapper.findUserByName(名称);   }   }   之前      

映射器接口         @ component   公共接口SystemUserMapper {   SystemUser findUserByName (@Param (userAccount)字符串名称);   }   之前      

mapper.xml         & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !DOCTYPE mapper公共”——//mybatis.org//DTD mapper 3.0//EN”“http://mybatis.org/dtd/mybatis-3-mapper.dtd”的在   & lt;映射器命名空间=癱om.husy.mapper.SystemUserMapper”比;   & lt; resultMap id=" systemUserMap " type=" com.husy.domain。祝辞SystemUser”;   & lt; id列=皍ser_id”属性="标识"/比;   & lt;结果列=皍ser_account”属性=" userAccount "/比;   & lt;结果列=皍ser_password”属性=" userPassword "/比;   & lt;结果列=皍ser_phone”属性=" userPhone "/比;   & lt;/resultMap>   & lt;选择id=" findUserByName " resultMap=皊ystemUserMap”比;   选择   user_id,   user_account,   user_password,   user_phone   从t_system_user   user_account=# {userAccount}   & lt;/select>   & lt;/mapper>   之前      

通过上面的代码可以看出. map接口中的方法和映射文件中的方法名称是一样的。不存在名称错误导致的情况,返回值,参数类型等你都正确。如果找不到方法,那一定是映射文件配置问题,只有没有读取到,才会出现找不到的情况。
  我的配置如下:

  

  

我这里引用的是mybatis-plus-boot-starte依赖

        & lt; dependency>   & lt; groupId> com.baomidou   & lt; artifactId> mybatis-plus-boot-starter   & lt; version> 3.1.0   & lt;/dependency>      

映射器。xml的文件引用路径配置如下:

        mybatis.mapper-locations=类路径:映射器/* . xml   之前      

这就导致,mybatis读取不到mapper映射文件。

  

经过查阅:

  
      <李>如果引用mybatis-plus-boot-starter依赖,需要配置mybatis-plus.mapper-locations李   <李>如果引用mybatis-plus依赖,需要配置mybatis.mapper-locations李   
  

如下:   

详解mybatis-plus的映射。xml路径配置的坑