我遇到这个问题后,在网上找了很多,但都是说的官话:
- 检查mybatis.xml文件namespace名称是否和Mapper接口的全限定名是否一致
- 检查Mapper接口的方法在mybatis.xml中的每个语句的id是否一致
- 检查Mapper接口方法返回值是否匹配select元素配置的ResultMap,或者只配置ResultType
- 检查yml文件中的mapper的XML配置路径是否正确
用人话来说,我遇到的是两个问题(举例)
- 资源下的UserMapper.xml中的namespace要与接口类(interface)UserMapper的地址一致,这个大家应该已经检查了无数次了。主要是第二种。
- UserMapper.xml文件在resources下的位置应和接口类Usermapper的位置一致。还是上方那张图,UserMapper接口的位置是java/tt/mybatis/mapper/UserMapper,那么映射文件的位置也应该是resources/tt/mybatis/mapper/UserMapper.xml。
注意:
- 如果两者的位置是错的,就是如标题所述的错误(如下)
- 当我把UserMapper.xml映射文件的位置由resources/tt/mybatis/mapper/UserMapper.xml改为resources/mapper/UserMapper.xml,就会出错。
- 当我把UserMapper.xml映射文件的位置由resources/tt/mybatis/mapper/UserMapper.xml改为resources/mapper/UserMapper.xml,就会出错。
- 还有一种错误是在resources下建立文件夹时,不能用
tt.mybatis.mapper来建立,得用tt/mybatis/mapper来建立文件夹,虽然在IDEA中看起来并无两样,但是两者建立的目录路径是不同的。(右键点击红色部分,选择\"Show in Explorer\",上为正确的)
来源:https://www.cnblogs.com/dsxs-bios/p/16571073.html
本站部分图文来源于网络,如有侵权请联系删除。