微服务下的Mybatis xml无效绑定问题分析 Invalid bound statement

问题描述

启动运行项目,调接口时,走到mapper接口处,报以下错误:

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

有的人,可能困扰好几小时,或者一天以上。

分析

1、检查 mapper 接口和xml文件的定义的namespace 是否可以正常跳转。

2、检查xml返回类型是否正确 ResultMap 还是ResultType。

3、检查项目的主配置文件的信息(yaml或者poperties):

 检查mybatis.mapper-locations属性配置的路径下是否可以找到接口对应的xml文件。

4、检查工程编译后Target的Classes的文件夹里,对应的xml文件,是否是最新的xml文件内容,二者是否一致。

   其实,大多数并没有被编译到Classes 目录中。
   maven 要执行 mvn clean  package  【不一定得行、静态文件不一定会加载到target】
   maven 要执行 mvn clean  install  【得行】 【idea清空缓存、再执行此命令】

5、检查主启动类的注解的value是否正确。

@MapperScan(value = "com.zy.core.mapper")

6、如果使用了微服务配置中心,还需要检查当前的项目是使用的哪个Nacos

项目的环境(本地调试,开发环境、测试环境、生产环境)不一样,使用的Nacos配置也不一样。

有自己电脑启动的nacos;
有公司搭建的nacos;
有不走nacos的配置中心的,走项目的本地配置;

总之, 要明确当前的项目的配置(如:数据库连接的信息)应该是使用的那个位置(本地的yaml还是本地的Nacos配置中心、其他的Nacos配置中心)。

如果使用了Nacos配置中心,不管是本地的还是其他的,都要登录Nacos配置中心去检查下是否存在相应的DataId、group、username、password等信息。

如果存在 ,查看下mybatis.mapper-locations属性是否与项目里配置的一致。

mybatis:
	mapper-locations: classpath:com/zy/core/mapper/*Mapper.xml

或者

mybatis-plus:
  mapper-locations: classpath*:com/zy/core/mapper/mapper/**/**.xml

感谢

如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【点赞】支持,或请我喝杯咖啡【赞赏】,这将是我继续写作,分享的最大动力!
作者:勤快的小蚂蚁
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
————————————————
版权声明:本文为CSDN博主「勤快的小蚂蚁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fxzzq/article/details/126079715

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤快的小蚂蚁

奖励下我呗!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值