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

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

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

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

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

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

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

你可能感兴趣的:(数据库,编程解惑)