解决方法
在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文件
实在是令人费解(* ̄︿ ̄)