做毕设的时候遇到的这个问题
首先我的项目在不适用 XML 的前提下的 CURD 都是成功的,但是只要一使用 XML ,那么就报上面的异常,项目结构如下
我的 Spring 版本是 3.4.2 、mybatis-plus 版本是 3.5.9
Mapper 接口中加入了 @Mapper 注解,启动类里也加入了 MapperScan 扫描
resource 中的 xml 我是在 application 中指定了扫描路径的
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
xml 文件中的接口名和命名空间都没有问题,下面是具体的 XML 代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rolin.orange.orangecommon.mapper.UserMapper">
<select id="getAll" resultType="com.rolin.orange.orangecommon.model.user.entity.User">
select * from user
</select>
</mapper>
Mapper 代码也没有问题,可以成功编译,可以成功启动
在编译后的结果里,可以找到对应的 xml 文件
感觉不管是哪里都没有问题,但是只要调用接口,就会报下面的异常
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.rolin.orange.orangecommon.mapper.UserMapper.getAll
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:229) ~[mybatis-3.5.16.jar:3.5.16]
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:50) ~[mybatis-plus-core-3.5.9.jar:3.5.9]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:99) ~[mybatis-plus-core-3.5.9.jar:3.5.9]
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[na:na]
at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:36) ~[mybatis-3.5.16.jar:3.5.16]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:97) ~[mybatis-plus-core-3.5.9.jar:3.5.9]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) ~[mybatis-plus-core-3.5.9.jar:3.5.9]
at jdk.proxy2/jdk.proxy2.$Proxy98.getAll(Unknown Source) ~[na:na]
at com.rolin.orange.orangecommon.service.UserService.getAll(UserService.java:84) ~[classes/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
我最后怀疑会是依赖的问题,但是查了下,springboot3.4.2 对应的 mybatisplus 版本就是 3.5.9 ,这个应该也没问题
到了这一步我实在是搞不懂到底是因为什么原因导致的这个问题了,有没有大佬帮忙解决一下?小弟我是感激不尽啊
![]() |
1
wanglz111 8 天前 ![]() xml 的会不会多了一个`user` dir 呢
|