首先这个问题是怎么出现的
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xxxx
- 语法错误 (xml的标签与接口方法不对应)
- 参数类型错误 (xml的传参参数与返回参数错误)
- 编译错误 (xml并没有编译进去)
- 配置错误 (配置参数漏了或者写错了
- xml资源路径错误 (这是重点,如果不细心的话,很难找到问题所在)
重点说明资源路径为什么会错
某一次照常建立关于mybatis-plus的项目,然后运行自定SQL的时候突然出现这篇文章提到的问题。花了好几天都是这个错误,尝试改配置、重新建立项目同样是这种问题。唯独这个xml写的自定义sql无法执行,其他方法都是能够正常执行的。
后面发现IDEAresources新建文件夹的时候使用mapper.system与mapper/system他们展示的结构都是一样的,然而这两者的意义却不一样。mapper.system相当于这个文件夹就是这个名字,而mapper/system是建立二级目录,而那个配置文件没法识别mapper.system,所以问题这个是微不足道的细节导致的。
总结
这个问题困扰我好几天,后面找到问题所在,才发现是这个细节问题。后续开发一定要细心,否则会吃大亏。