项目场景:
在springboot整合mybatis时遇到了这个异常,特此记录下我本次异常的出现原因
项目练习参考这篇博客—使用IDEA搭建一个简单的SpringBoot项目——详细过程
问题描述:
开始项目正常启动,能进入登录页面,但在登录后弹出登录失败页面,后台报BindingException异常
原因分析:
从异常看是因为持久层方法未能找到对应的映射文件中的SQL语句(getInfo
方法)
在网上找了很多方法,包括方法名是否一一对应,yml文件中的mybatis映射配置等等,都没有成功
最后才发现是xml文件目录的问题
这是我的mapper.xml目录:
这是yml文件的映射配置:
解决方案:
- 1.把mapper.UserMapper.xml文件从templates包挪到resources包夹下
- 2.更改yml映射文件配置地址(在mapper前加上
*/
)
其他解决方案
如果异常和我一样是xml文件未找到的问题,但又迟迟找不到异常原因
在网上找到的一种方法可做应急处理:
把mapper.xml文件放到mapper.java文件同一文件夹下
再添加依赖:
<build>
<!--项目打包时会将java目录中的*.xml文件也进行打包 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<build>
注意目录格式--src/main.java
完了刷新maven,重启项目
总结
异常要会看,代码要细心,解决异常不能太死板,不能只看网上查到的,还要结合自己的情况分析