今天在springboot整合mybatis项目中替代orm为mybatis-plus。然后突然出错,mybatis无法找到对应mapper。在这里做一下记录。
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shengxi.mapper.findUserByName
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod$SqlCommand.<init>(MybatisMapperMethod.java:242)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:54)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedMapperMethod$0(MybatisMapperProxy.java:65)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod(MybatisMapperProxy.java:65)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:60)
at com.sun.proxy.$Proxy72.findUserByName(Unknown Source)
at
网上的解决方案主要有以下几个:
- 配置文件yml中不对应;
- xml中namespace路径与接口不对应;
- 如果使用mybatis-plus的starter,使用mybatis-plus,如果直接使用mybatis-plus就是mybatis作为配置。
- 在maven配置文件中增加资源位置的定位。
<resources> <resource> <directory>src/main/resource</directory><!--所在的目录--> <includes><!--包括目录下的.properties,.xml文件都会扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.yml</include> </includes> <filtering>true</filtering> </resource> </resources>