此篇博客用来记录本人遇到的 Invalid bound statement 问题
另外也欢迎各位留言,不断的对该问题进行完善
Invalid bound statement

原因:通常是因为MyBatis无法找到对应的SQL语句,或者没能正确解析参数导致的错误
解决
这个问题非常常见,检查以下几项:
- Mapper 接口中的方法名 需要跟 xml 中标签的 id 一致
- xml 中的 namespace 需要跟Mapper的类名对应
- 检查Mapper.xml文件,确认定义的SQL以及参数名称和类型是否与Java代码中的调用保持一致
- 如果参数是对象,对象中的属性名称是否与Mybatis 映射的列名相同
- 检查basePackages配置 或 mybatis-config.xml 中的 mapper 配置,确保 mapper.xml 被扫描到
- 检查 target 目录中有没有 Mybatis 相关的映射文件
其他现象
selectById
本人在使用 mybatis-plus 时,调用 BaseMapper 的 selectById 方法遇到了这个问题

原因:

未指定泛型
本人在使用 mybatis-plus 继承 BaseMapper 时,未指定泛型,比如:

这样也会导致 Invalid bound statement 问题
本文记录了遇到的Invalidboundstatement问题,通常由MyBatis找不到对应SQL或参数解析错误引起。解决方案包括检查Mapper接口与XML标签ID匹配,namespace与Mapper类名对应,参数名称和类型的一致性,对象属性与列名的映射,以及mapper.xml的扫描配置。在使用mybatis-plus时,未指定泛型会导致此类问题。
317

被折叠的 条评论
为什么被折叠?



