解决方案一:将 mapper 类和 mapper.xml 放在同一个包下,失败

解决方案二:在启动类上加上包扫描

@SpringBootApplication
@MapperScan("com.wf.dao")
public class YourApplicationClass {
    //...
}

 失败

解决方案三:在 yml 配置文件中指定该 xml 文件的扫描

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      #数据库表的前缀
      table-prefix: ms_
  mapper - locations: classpath:com/wf/dao/TagMapper.xml

失败,不过可以排除是包扫描问题

解决方案四:检查 XML 文件的编译和打包

在 pom.xml 中指定编译和打包要包含 xml 文件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
</build>

失败

(2024-11-15) 成功解决该报错,解决方法:

发现问题原因是由于 xml 配置文件和 mapper 接口的位置不对

mapper 接口应该放在 dao 层的 mapper 包里,而 xml 应该放在 resources 的对应目录下

将其位置移动后成功解决:

 

更多推荐