databaseId 不匹配导致Mybayis报错:Invalid bound statement (not found)
问题
后端调用Mapper方法报错:Invalid bound statement (not found)
排查过程
- 按网上方式逐一排查,都未解决问题
- 网上搜不到解决方案,只能查看源码了
- 首先定位到com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean#buildSqlSessionFactory方法
- 打上一个条件断点,定位需要分析的xml文件
- 断点一步步跟进分析,最终发现在org.apache.ibatis.builder.xml.XMLStatementBuilder#parseStatementNode方法内,databaseId未匹配上导致Statement未被解析
- 最总导致执行org.apache.ibatis.binding.MapperMethod.SqlCommand#SqlCommand方法时,在Configuration找不到对应的Statement,报:Invalid bound statement (not found):
原因
xml文件里,定义了databaseId导致不匹配,删除即可