主要 是有以下几个原因:
由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层、service层平级的src目录下。这就导致ItelliJ IDEA不会变异这些xml文件夹,从而导致Invalid bound statement (not found)的发生。
1.在maven pom.xml 文件 build 标签中,加入:
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
2.查看与mapper 文件 关联映射的 mapper.xml 文件 是否有 xml 文件后缀。(本人就是这个出错的,不知道为什么IDEA 在我新建xml 的时候没有生成 后缀名(xml))
修改之前:
修改之后:
我使用的是jrebel热部署,部署完成,不再报错。
3.mapper 文件名,以及mapper.xml 文件的名字,namspace 的路径是否正确,且 映射 方法名 一致。
其他参见:新版IntelliJ IDEA中Mybatis报Invalid bound statement (not found)错误解决办法