0


Invalid bound statement (not found)错误解决方法

文章目录


一、问题描述

在学习mybatis时需要创建一个新项目,可是配置完试的时候,报了Invalid bound statement (not found)错误
什么意思呢?
就是mapper.xml文件和mapper接口没有对应起来呗~
在这里插入图片描述

二、解决过程

看了很多大佬已经总结好的问题,无非就是namespace写错了、mapper接口或者xml文件名字没对应上等,多次排查之后发现确实没这方面问题 = =
那就是mybatis配置文件里的问题了,毕竟xml文件和接口映射的语句写在这里了嘛
在这里插入图片描述
这是我的mybatis配置文件里映射部分和文件结构

三、关键点来了!

众所周知,现在建立xml文件一定是在resources文件下建立一个和接口所在包相同名称的文件夹。所以,当其他地方都没有问题的时候,你就要考虑一下自己resources下的mapper文件夹如果像我一样是 嵌套的 !!那你在建立的时候如果不是一个一个文件夹的建立,而是想直接建一个多层嵌套的文件夹,就会建成一个名为"com.tim.mapper"的单个文件夹,然后一定会报我这个错误。即使这两种方法建立的文件夹结果是一样的形式!
所以正确方法:
1、先建第一个文件件在这里插入图片描述2、再建第二个文件夹在这里插入图片描述
3、此时可以看出,此时建成的多层文件夹(如下图)和之前用“com.tim.mapper”所建成的一个名为:com.tim.mapper文件夹是有本质区别滴(虽然长得差不多= =)
在这里插入图片描述
4、但是映射去寻找的时候,只能找到多层文件夹下的文件~

2023.1.28 补充----------------------------------
才看到评论里有大佬指出了根本问题:在resources文件夹下建立子文件使用的分隔符是 “/” ,这和在java文件夹下建立子文件所用的分隔符 “.” 是不一样滴。因此:再建一个文件,使用"com/tim/lala"在这里插入图片描述
也可以得到与分开建一样的效果~
在这里插入图片描述

总结

血与泪的教训,在resources里建多层文件夹的时候千万不能和mapper接口文件夹里一样直接建,一定要分开(或使用补充的方法建),希望这个凌晨两点终于解决的这个问题能帮到你们。


本文转载自: https://blog.csdn.net/weixin_46019348/article/details/124854909
版权归原作者 且听风吟_Tim 所有, 如有侵权,请联系我们删除。

“Invalid bound statement (not found)错误解决方法”的评论:

还没有评论