SpringBoot中调用mybatis方法提示映射文件未找到Invalid bound statement(not found)的奇葩解决

场景

若依前后端分离版手把手教你本地搭建环境并运行项目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

做业务开发时新建某个表并调用代码生成的mapper方法查询list时,

之前突然好用的方法,突然提示:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.system.mapper.BusDeviceMapper.selectBusDeviceList

at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:229)

at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53)

at org.apache.ibatis.binding.MapperProxy.lambdacachedInvoker0(MapperProxy.java:96)

at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)

at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:36)

at org.apache.ibatis.binding.MapperProxy.cachedInvoker(MapperProxy.java:94)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)

根据典型的报错xml不匹配问题,问了AI,排查了常规如下原因:

  1. 检查 Mapper XML 文件位置

Maven 项目:确保 XML 文件在正确位置

方式一:放在 src/main/resources/mapper/ 目录下

方式二:与 Mapper 接口同包(如 src/main/java/com/ruoyi/system/mapper/)

  1. 检查 application.yml 配置

mybatis:

mapper.xml 文件位置

mapper-locations: classpath*:mapper/**/*.xml

或者

mapper-locations: classpath*:com/ruoyi/**/mapper/*.xml

实体类包路径

type-aliases-package: com.ruoyi.system.domain

  1. 检查 Mapper 接口和 XML 的命名空间

4、常见排查步骤

清理并重新编译:

mvn clean compile

检查 target 目录:查看编译后的 classes 目录下是否有 XML 文件

IDE 刷新:在 IDEA 中执行 File -> Invalidate Caches and Restart

检查方法名:确认 XML 中的 id="selectBusDeviceList" 与接口方法名完全一致(包括大小写)

常规排查后仍然不生效,开始往下面的思路怀疑

问题出现在往实体类中添加了几个数据库不存在的字段后。

那就:

标记非数据库字段

在新增的字段上添加 @TableField(exist = false)

仍然不生效。

再经过各种什么mybatis与mybatisplus共存问题、@Mapper接口问题各种排查后,

还是不行,最后就算把新增的字段去掉恢复了代码还是不行。

那就可能根代码没啥关系了,因为之前的代码是能正常启动访问的。

最终去查找maven的问题。

果然IDEA中的Maven设置被改成了默认的C盘的配置文件了。

然后将maven路径改为我的外置的路径,配置文件一顿修改正确好,可以了,问题解决了!!!

相关推荐
颜酱17 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱18 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
嘉伟桑1 小时前
Python调用电价API返回JSON示例:分时电价、现货电价和字段解析
后端
武子康2 小时前
Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(4 类收敛 + 7 步实现方案 + 6 类评测指标)
前端·人工智能·后端
天若有情6732 小时前
SpringBoot4 + MyBatis 前后端分离实战|从零实现坏习惯管理系统,支持局域网手机访问CRUD
智能手机·mybatis
我叫黑大帅2 小时前
我为什么单一消费者的场景下,要用 Redis List 当消息队列?
redis·后端·面试
AskHarries2 小时前
文件上传系统
后端
止语Lab3 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活3 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困3 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端