今天遇到mybatis的報錯,搞了好久才搞懂,在網上找了好久的相似案例,也沒有搞定,先來看下網上常見的解決辦法吧,相信也能解決大部分人的報錯。
排查方法如下:
1、mapper接口和mapper.xml是否在同一個包(package)下?名字是否一樣(僅后綴不同)?
2、mapper.xml的命名空間(namespace)是否跟mapper接口的包名一致?
3、接口的方法名,與xml中的一條sql標簽的id一致
4、如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,盡量用resultMap(保證resultMap配置正確),不要用resultType
5、如果你的項目是maven項目,請你在編譯后,到接口所在目錄看一看,很有可能是沒有生產對應的xml文件,因為maven默認是不編譯的,因此,你需要在你的pom.xml的里面,加這么一段:
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources>
上述1-4的方法我檢查了好多遍,都沒用,到第五步,終於解決了我的問題,原因就是maven沒有編譯XML文件,加上如上配置后完美解決。