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目录
代码如下:
单元测试
@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李>
如下: