此篇博客用来记录本人遇到的 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 问题