相信大家在使用springboot集成mybatis的时候可能会遇到org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的异常,这个坑呢,除了像网上的说的那几种错误之外,今天我又发现了一种新的错误原因。下面我来说一下项目的结构及目录。
我的mapper.xml文件是放在resource下面的db.mapper文件夹下。
Mybatis配置是这样的:
项目在启动的时候是成功的,但是只要操作数据库,就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),在网上也看了很多这个问题的解决方案,@MapperScan注解也添加了,mybatis.mapper-locations扫描的路径也添加了,也是扫描 resource下面的db.mapper文件夹的内容,怎么看都没问题,但是就是扫描不到mapper.xml文件。找了很久很久,终于找到问题所在。
问题:我自己在resource文件夹下创建 db.mapper文件夹的时候,文件夹的名称就是 db.mapper。
这种文件夹名称 db.mapper 的创建方式是错误的。
解决方式:我们应该把上面一步创建文件夹的方式分为两步,先把 db 这个文件夹创建出来,创建完 db 文件夹后再在db这个文件夹下创建 mapper的文件夹。按这种方式创建完后,就成功扫描到了。
声明一下,不管是db.mapper或先创建db文件夹再创建mapper文件夹的方式,在idea上显示的都是 db.mapper,如图所示:
本宝宝就是被这里坑到了。
坑死宝宝了,浪费了宝宝一天的时间,头发都掉了不少。