一、问题描述
在学习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接口文件夹里一样直接建,一定要分开(或使用补充的方法建),希望这个凌晨两点终于解决的这个问题能帮到你们。
今天的文章Invalid bound statement (not found)错误解决方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25743.html