java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 微服务下Mybatis xml无效绑定问题

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

作者:勤快的小蚂蚁

这篇文章主要介绍了解决微服务下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):

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

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

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

6、如果使用了微服务配置中心,还需要检查当前的项目是使用的哪个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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文