问题描述
在使用mybatis及mybatis-plus时,会报错Invalid bound statement (not found)
解决方法
网上大佬排查问题已经总结了不少,大致分为以下几种:
- xml文件namespaces路径错误
- xml文件id和mapper文件方法名对不上
- 配置文件中扫描包不对
这里就不再一一赘述,重点说一下第三个问题。
真实案例
场景:xml文件所在包为多级目录,且namespaces及id都能对应上。
问题产生原因:xml文件所在包为一次性创建,即在resources目录下创建mapper.city目录。
解决方式:先创建mapper目录,然后在mapper目录下创建city目录
详解:通过idea创建项目,在idea操作,idea对项目java目录下创建文件夹进行了特殊处理,通过A.B的方式可以创建多级目录;而resources目录并未进行特殊处理,即会产生通过A.B方式创建的目录并非是A目录下存在B目录,而是目录名称为A.B。由此导致配置文件中扫码包的路径不匹配,所以无法找到对应xml文件。
碰到一些奇怪的问题,特此记录。