java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Invalid bound statement (not found)错误

mybatis创建项目报Invalid bound statement (not found)错误解决方法

作者:且听风吟_Tim

使用MyBatis能够帮助我们将SQL语句和Java代码分离,这篇文章主要给大家介绍了关于mybatis创建项目报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、但是映射去寻找的时候,只能找到多层文件夹下的文件~

补充----------------------------------

有大佬指出了根本问题:在resources文件夹下建立子文件使用的分隔符是 “/” ,这和在java文件夹下建立子文件所用的分隔符 “.” 是不一样滴。因此:再建一个文件,使用"com/tim/lala"

也可以得到与分开建一样的效果~

总结

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

到此这篇关于mybatis创建项目报Invalid bound statement (not found)错误解决方法的文章就介绍到这了,更多相关Invalid bound statement (not found)错误内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文