看完各种方法都不行再来看这里
报错
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.lgq.springboot.mybatis.mapper.MonsterMapper.getMonsterById
原因
Mapper接口 和 Mapper.xml 文件无法正常绑定。
解决方法
所有CSDN的方法我都尝试了。都不行。
最终真想放弃了。
可是!
随便一弄,就成了!
当在pom.xml文件中加入:
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<!--
在build种配置resources, 防止我们资源导出失败的问题.
1. 不同idea/maven版本可能提示错误不一样.
2. 以不变应万变, 少什么文件, 就增加相应的配置即可.
3. 含义是将 src/main/java目录和子目录以及 src/main/resources目录和子目录下的资源文件xml和properties在build项目时,导出到对应target目录下
-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
后,即使target中有mapper.xml,仍然报错上面的内容。
对比我生成的target和上课讲的源代码:
发现我生成的没有application.yml文件!
于是乎在pom。xml文件中加入这一行,即可成功运行!!!!
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.yml</include> <!--加入这一行-->
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
不知道是依赖的版本的原因还是上面。就很玄学!