MyBatis-Plus 在 XML 中里面自定义 SQL 报错 Invalid bound statement (not found)

项目场景:

今天同事遇到这个问题心态炸了,因为项目之前从 TkMybatis 转为 MyBatis-Plus 是我负责的,所以他跑来问我

问题描述:

调用在 XML 中里面自定义 SQL 报错 Invalid bound statement (not found),而调用 BaseMapper 里的方法是正常的。

原因分析:

因为全局的配置是我做的,并且调用BaseMapper中的insert、selectList等方法都没有问题,那问题肯定是xml文件路径出现了问题,但是反复检查并没有发现目录结构有任何的问题。

目录结构是符合yml中mapperLocations
但是为什么会报 Invalid bound statement (not found) 错误呢?于是我就看了看target里的编译结果,不看不知道,一看吓一跳。
编译结果
细心的朋友已经看出来了,因为resource目录下没有包的概念,在创建目录的时候他直接用mapper.workbench,创建的目录名就是这个,而不是mapper/workbench,当然将原来的 Compact Middle Packages 的对号去掉也一目了然了。
去掉折叠中间包


解决方案:

那当然是修改resource下的目录结构,在用resource下创建目录时,使用 / 进行创建。
这样才是能扫描到mapper.xml的


总结:

还是要注意开发规范、要细心才行啊
官方文档也总结了关于 Invalid bound statement (not found) 异常的原因,如果不是上面的问题,官方都给出了相应的解决方案,链接: 官方文档.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值