maven项目出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误的解决办法

解决方法

在maven项目里配置spring-mybatis.xml时,配置sqlSessionFactory的时候,其中用来配置mapper.xml文件位置的mapperLocations属性,配置如下时

<property name="mapperLocations"
            value="classpath:mapper/*Mapper.xml" />

会报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
此时只要加在classpath后面加个*(自动搜索mapper文件夹),如下

<property name="mapperLocations"
            value="classpath*:mapper/*Mapper.xml" />

搞定!
其他解决方法可以看看下边这个大佬的总结:
https://blog.csdn.net/sundacheng1989/article/details/81630370

下面是一点点问题的分析:

根据mybatis配置文件的指定

<property name="configLocation"
            value="classpath:mybatis-config.xml" />

classpath应该指的是src/main/resources,而在src/main/resources/mapper里的mapper.xml文件却加载不成功。

而后了解到,maven项目中的classpath其实是指编译后的web-inf/classes目录,遂查看该目录发现mapper也就在classes的下边
编译后的文件夹

里面也确实存着我写的mapper.xml文件


mapper2.PNG

实在是令人费解(* ̄︿ ̄)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容