在使用idea对SpringBoot和mybatis进行整合,执行插入语句时报错。
界面报错:

控制台报错:

错误信息说是无法找到mapper接口中定义的方法,但是底层代码连接数据库是通过MyBatis自动代码生成插件插件的,不会有问题,整体项目结构如下:

百度搜索之后得知其原因,是由于IntelliJ IDEA开发工具引起的问题:该工具在编译时不会自动编译xml配置文件,只是编译了mapper目录下的UserMapper.java接口的Java文件,查看下面的target目录如下:

解决以上编译问题,就需要在项目的pom.xml文件中做xml资源文件加载、编译的配置;如下所示是常用的三种路径下资源文件的配置,可根据自己情况选择性配置:
<build>
<!-- 配置资源文件加载目录,否则将有文件无法被加载;尤其是webapp目录下的jsp文件,即最后一个resource标签的配置 -->
<resources>
<!-- 加载并编译src/main/java目录下的xml文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!-- 加载并编译src/main/resources目录下的所有文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!-- 加载并编译webapp目录下的所有文件到指定路径下 -->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath><!-- 设定webapp下文件的编译路径 -->
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
本文介绍在IntelliJ IDEA环境下,SpringBoot项目整合MyBatis时出现无法找到Mapper方法的错误,并提供了解决方案,即通过配置pom.xml来确保XML配置文件能够被正确加载。
3425

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



