Spring整合Mybatis报错 Invalid bound statement (not found) 亲测有效

Spring整合Mybatis报错: Invalid bound statement (not found): 亲测有效

mybatis报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found), 经过在网上半天的搜索, 找到好几种解决办法, 从字面意思上来看明显就是绑定异常, 其实就是xml与mapper接口绑定失败导致的异常, 所以网上说了如下几种办法:

  1. mapper.xml中的namespace和实际的mapper文件不一致
  2. mapper接口中的方法名和mapper.xml中的id标签不一致
  3. Mapper.xml没有构建到target中
  4. 配置文件导不出来, maven的配置文件默认放在resources目录下,实际上把它放到了java目录下,导致配置文件导不出来
  5. spring配置文件写错

然而这五种情况我都没有发生, 却仍然报错Invalid bound statement (not found), 如果大家跟我一样上述五种情况都未发生, 但是仍然报了这个错误, 请继续往下看!

那就请大家来看第六种情况吧!

如下图为我当时的报错信息

在这里插入图片描述

经过排查发现很明显我的xml跟mapper接口是能绑定起来的, MybatisX插件也很好的证明了这一点

在这里插入图片描述

搞了俩小时, 突然想起来曾经的前辈跟我说过mapper.xml文件最好与mapper接口同目录, 这样生成的target文件中, mapper接口与xml文件会在同一个包中, 由于大家正常开发都是把mapper.xml文件直接放到resource/mapper下, 所以当时老师说过我也没有特别注意, 今天终于吃了亏, 日后也请大家注意这个问题, 尽量让自己的结构保持绝对的清晰正确, 请看修改后的包结构, 如下截图

修改resource目录, 将xml文件目录修改为跟mapper接口的文件目录一模一样
在这里插入图片描述
修改完成后maven重新install, 发现mapper接口与xml文件被打到一个文件夹下
在这里插入图片描述
重新运行, 问题解决, 下课!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值