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

 更新时间:2023年11月20日 15:53:11   作者:勤快的小蚂蚁  
这篇文章主要介绍了解决微服务下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

总结

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

相关文章

  • Java正则替换手机号代码实例

    Java正则替换手机号代码实例

    本文的主要内容是Java语言中正则表达式替换手机号的第4到第7位,实现方法十分简单,同时涉及了一些正则表达式的相关用法,需要的朋友可以参考下。
    2017-09-09
  • java之this关键字用法实例分析

    java之this关键字用法实例分析

    这篇文章主要介绍了java之this关键字用法实例分析,较为详细的讲述了Java中this关键字的用法及适用范围,并附带实例程序加以说明,需要的朋友可以参考下
    2014-09-09
  • Mybatis实现查询相册数据列表流程讲解

    Mybatis实现查询相册数据列表流程讲解

    这篇文章主要介绍了Mybatis实现查询相册数据列表流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • Spring 使用xml配置AOP的过程详解

    Spring 使用xml配置AOP的过程详解

    在之前的学习中,都是使用注解的方式进行AOP的配置.其实使用xml配置文件也可以配置AOP,本文给大家分享Spring 使用xml配置AOP的过程,感兴趣的朋友一起看看吧
    2023-11-11
  • 基于Lombok集成springboot遇到的坑

    基于Lombok集成springboot遇到的坑

    这篇文章主要介绍了Lombok集成springboot遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 基于Java代码实现支付充值的通用流程

    基于Java代码实现支付充值的通用流程

    本文给大家分享一段java核心代码实现支付充值的通用流程,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-05-05
  • 简单了解JAVA变量类型及代码实例

    简单了解JAVA变量类型及代码实例

    这篇文章主要介绍了简单了解JAVA变量类型及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • java解析JT808协议的实现代码

    java解析JT808协议的实现代码

    这篇文章主要介绍了java解析JT808协议的实现代码,需要的朋友可以参考下
    2020-03-03
  • Hadoop之Mapreduce序列化

    Hadoop之Mapreduce序列化

    本文主要带我们了解Mapreduce序列化,序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。想进一步了解更多的小伙伴,可以参考阅读本文
    2023-03-03
  • 使用maven-assembly-plugin如何打包多模块项目

    使用maven-assembly-plugin如何打包多模块项目

    这篇文章主要介绍了使用maven-assembly-plugin如何打包多模块项目,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论