databaseId 不匹配导致Mybayis报错:Invalid bound statement (not found)

问题

后端调用Mapper方法报错:Invalid bound statement (not found)

排查过程

  1. 按网上方式逐一排查,都未解决问题
  2. 网上搜不到解决方案,只能查看源码了
  3. 首先定位到com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean#buildSqlSessionFactory方法
  4. 打上一个条件断点,定位需要分析的xml文件
  5. 断点一步步跟进分析,最终发现在org.apache.ibatis.builder.xml.XMLStatementBuilder#parseStatementNode方法内,databaseId未匹配上导致Statement未被解析
  6. 最总导致执行org.apache.ibatis.binding.MapperMethod.SqlCommand#SqlCommand方法时,在Configuration找不到对应的Statement,报:Invalid bound statement (not found):

原因

xml文件里,定义了databaseId导致不匹配,删除即可

posted @ 2024-08-29 09:14  风一样的码农  阅读(43)  评论(0编辑  收藏  举报