mybatis-plus报错解决Invalid bound statement (not found)
mybatis-plus报错解决:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
问题报错
解决思路
- 检查是不是引入 jar 冲突
- 检查 Mapper.java 的扫描路径
方法一:在 Configuration 类上使用注解 MapperScan
1 |
|
方法二:在Configuration类里面,配置MapperScannerConfigurer
1 |
|
- 检查命名空间是否正常? 检查包扫描路径typeAliasesPackage是否正常?如果扫描不到,MP 无法进行预注入
- 检查是否指定了主键?如未指定,则会导致 selectById 相关 ID 无法操作,请用注解 @TableId 注解表 ID 主键。当然 @TableId 注解可以没有!但是你的主键必须叫 id(忽略大小写)
- SqlSessionFactory不要使用原生的,请使用MybatisSqlSessionFactory
(61条消息) mybatis plus报Invalid bound statement (not found):解决_w的博客-CSDN博客
个人错误原因
经过排查是在配置类中使用了原生的SqlSessionFactory导致的
- 修改前配置类代码项目中配置类是使用了原生的SQLSessionFactory,更改成MybatisSqlSessionFactory即可
1
2
3
4
5
6
7
8
9
10
11
12
13
public SqlSessionFactory clusterSqlSessionFactory( DataSource clusterDataSource)throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(clusterDataSource);
sessionFactory.setTypeAliasesPackage("com.spi.ehr.pojo");
return sessionFactory.getObject();
// MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
// mybatisSqlSessionFactoryBean.setDataSource(clusterDataSource);
// mybatisSqlSessionFactoryBean.setTypeAliasesPackage("com.spi.ehr.pojo");
// return mybatisSqlSessionFactoryBean.getObject();
} - 修改后配置类修改后运行正常
1
2
3
4
5
6
7
8
public SqlSessionFactory clusterSqlSessionFactory( DataSource clusterDataSource)throws Exception {
MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
mybatisSqlSessionFactoryBean.setDataSource(clusterDataSource);
mybatisSqlSessionFactoryBean.setTypeAliasesPackage("com.spi.ehr.pojo");
return mybatisSqlSessionFactoryBean.getObject();
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 🤖!