Mybatis 中的 Invalid bound statement——专题

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

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

image.png
原因:
image.png

未指定泛型

本人在使用 mybatis-plus 继承 BaseMapper 时,未指定泛型,比如:
image.png
这样也会导致 Invalid bound statement 问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值