这个问题我遇到了两次,每次都原因都不一样。搞得我当场奔溃,这里记录下
这个问题的可以理解成 XXXMapper.xml和XXXMapper.java没有关联上
问题就是接口里面的方法没有和xml的面的映射上。
我这里遇到的两次都是因为我的Springboot引用没有加载xxxMapper.xml文件
我遇到的场景1
mapper.xml的路径没有配置。解决的方法就是再application.properties 里面添加配置
下面是我的配置(我用的mybatisplus)
mybatis-plus.mapper-locations=classpath*:com/centanet/news/mapper/xml/*.xml
然后解决问题了
场景2
就是第二天,我在公司电脑上新建项目,这次我知道上次犯得错。然后我的配置文件里添加了路径。但是。问题还是出现了。我当时找半天。几乎崩溃都没找到解决方案。后面在一篇文章的评论下找到了解决方案。如下,再maven的配置文件添加一部分内容
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>com/centanet/news/mapper/xml/*.xml</include> </includes> </resource> </resources> </build>
还有其他可能出现这种情况的原因:
- xml方法里面的返回类型对应的是resultType。但是 写的是resultMap
- xxxMapper.java 和xxxMapper.xml两个文件的名字不一样。(这种拼写错误因为我用的插件能检查出来。我犯这种错可能性比较小)
- namespace是否对应正确
以上就是我知道的可能出现的情况。
其他的暂时还没碰到
2020年7月21日17:27:12再次更新
TM的,我今天又遇到了。靠。然后我检查下,发现是我的
mybatis-plus.mapper-locations=classpath*:com/mobile/api/java/tool/mapper/xml/*.xml
我把mobile拼写成了moblie 我找半天。把 i 和 l拼写反了
这种东西又看不出来,只能肉眼找。太费眼睛了