在日常开发中程序报错是家常便饭了,下面说说 Invalid bound statement (not found) 是怎么造成的,应该怎么解决。
问题
第一种:namespace和mapper文件不一致

mapper.xml文件namespace与mapper文件不匹配,报错。
第二种:方法名与sqlId不一致

方法名称与相应sql查询语句id不匹配,也会出现Invalid bound statement (not found)。
第三种:构建项目时文件丢失

有时候发现项目一切都已经没有问题了但就是报错,这时候就要查查是不是构建出错了。
解决办法
针对前两种,就要仔细检查mapper.xml文件namespace与mapper文件是否完全匹配,方法名称与相应sql查询语句id是否完全匹配。对于这两种情况可以安装一个插件MyBatisX(小蓝鸟)。
当不存在前两种问题时,点击对应的小鸟图标,就会跳转对应的代码页

对于mapper文件没有参与构建的情况,我们可以使用maven工具对target进行clean并重新构建,直至全体文件都构建其中。
除此之外,还有将mapper文件置于java包下也会出错,但是一般不会出现,还有就是配置问题。