IntelliJ IDEA 15.0.4 spring集成mybatis无法扫描mapper文件(坑)

本文主要介绍了在IntelliJ IDEA中,Spring整合Mybatis时遇到的Mapper文件无法扫描的问题及解决方法。报错信息为:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。解决方案包括检查Mapper接口与mapper.xml在同一包内,命名一致,命名空间与接口包名相同,方法名与xml中的sql id对应,以及确保maven配置能编译xml文件。作者强调了一个常见坑,即maven默认不编译xml,需要在pom.xml中配置资源编译。
摘要由CSDN通过智能技术生成

解决方法一

首先。如果你的spring集成mybatis项目报这个错,找不到配置文件资源,再同时你用的是Intellij,那么就往下看吧
这里写图片描述
解决方法 就是,使用这种配置方式! 放在resources目录下就可以了
本人的解决办法能解决问题但不是最优处理操作,以下为网络找到的大神解决办法,已验证正确性,二选一随大家选择,均可以解决问题
解决办法二

这个问题整整纠结了我四个多小时,心好累啊。。。不废话。。。

背景:Spring整合Mybatis

报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

解释:就是说,你的Mapper接口,被Spring注入后,却无法正常的使用mapper.xml的sql;

       这里的Spring注入后的意思是,你的接口已经成功的被扫描到,但是当Spring尝试注入一个代理(MyBatista实现)的实现类后,却无法正常使用。这里的可能发生的情况有如下几种;

  1. 接口已经被扫描到,但是代理对象没有找到,即使尝试注入,也是注入一个错误的对象(可能就是null)
  2. 接口已经被扫描到,代理对象找到了,也注入到接口上了,但是调用某个具体方法时,却无法使用(可能别的方法是正常的)

当然,我们不好说是那种情况,毕竟报错的结果是一样的,这里就提供几种排查方法:

  1. mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
    [plain]  view plain
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值