Mapped Statements collection does not contain value for。
先檢查以下三個原因:
1.mybatis的映射文件的命令空間與接口的全限定名不一致;
2有可能mybatis的映射文件名字與接口的類名字不一致;
3.還有一種情況就是接口聲明的方法在映射文件裏面沒有。
如果排查發現和上面說的一點都不符合。
而且是maven工程,那麼就可能是下面一種:
mapper包中的mapper.xml沒有編譯到targger中,maven只能將resource裏面的xml打包進去,排查發現target/classes/.../dao/文件夾下,發現只有mapper的class文件,而沒有xml文件,將對應的xml文件放到這個文件夾下運行就不會出現下面的錯誤。說明出現這個錯誤的原因是maven編譯時沒有將xml文件放進去。
解決方法:
在pom.xml中添加如下代碼:
<build> ... <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> ... </build>