在使用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>