出现这个错误的原因是,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>
这样子就完美解决这个问题啦

当出现mapper未与mapper.xml文件映射的错误时,检查xml文件中id与mapper方法名是否一致,namespace是否正确。如果使用mybatis-plus代码生成器,可能xml文件位于非resource目录下,导致Maven无法扫描。解决方案包括手动移动文件或在配置文件中指定mapper.xml路径,或者在pom.xml中添加资源扫描配置。通过这些步骤,可以确保mapper文件被正确加载。
3064

被折叠的 条评论
为什么被折叠?



