Mybatis运行报错:Cause: java.sql.SQLException: Parameter index out of range解决方法

本文详细解析了在接口调用中遇到的SQL参数数量不匹配的错误,具体表现为需要5个参数但仅传递了4个的情况。通过深入分析SQL语句,发现like条件中的参数未被正确识别,提出了使用concat函数将参数与字符串拼接的解决方案。

今天在调一个接口的时候,sql和实现方法都写好了,单元测试时报这个错误:

Parameter index out of range (5 > number of parameters, which is 4).

翻译过来就是sql里需要五个参数,但是只传了四个参数。纳尼?明明传了五个的,为什么少了一个呢?

仔细检查了下sql语句,发现问题应该出在了like这个地方:name like "#{name}%"。

这个地方因为被双引号引起来,应该是被直接当成了一个字符串,mysql没有识别出参数。其实应该这么写:

name like concat(#{name},"%")。把参数放到引号外面,这样就识别出来了,完美解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值