出现这个错误的原因是,mapper没有和mapper.xml文件映射起来
这里可以检查一下xml文件标签的id是不是和mapper文件中对应的方法名是一致的。
还有看看xml文件中namespace是不是对应的mapper文件的路径
以上都不是的话,还有一种可能,这种情况就是我遇到的情况
因为我是用mybatis-plus的代码生成器生成的mapper文件以及对应的xml文件,自动生成的xml文件不是放在resource文件夹下,而是放在mapper文件夹下面的xml文件夹中,如图
因此maven是不会扫描到的
这时我们可以选择把这个文件自己移动到resource文件夹下面去,也可以把这个文件复制到target目录下。但是这样就会改变项目的结构或者是少许麻烦。
当然我们还有一种解决方法:
到配置文件中配置一下mapper.xml文件的路径
#配置mapper.xml文件路径
mybatis-plus.mapper-locations=classpath:这里是你的文件目录路径/*.xml
如:**/***/***/*.xml
还需要一步:在pom文件中配置一下
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- 双*表示多层级目录 -->
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
这样子就完美解决这个问题啦