现象:
原因:
无效绑定,应该是mybatis最常见的一个异常了,接口与XML文件没绑定。首先,mapper接口并没有实现类,所以框架会通过JDK动态代理代理模式获取接口的代理实现类,进而根据接口全限定类名+id去一一绑定xml中的sql。
排查思路:
1)XML中的id 方法名与mapper接口的方法名是否一致,parameterType
类型 与 resultType类型是否准确,xml文件中的 namespace="xxx.xxx.xxx.Mapper" 中的路径是否与接口文件路径一致
2)XML文件写在src/main/java里,而不是resources
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>
3)检查target文件下的XML文件是否正常
可以看到,文件名不一致,原因是创建xml目录时省事了,没有一层一层的创建
重新创建目录
删掉原来的target,重新编译