记一次使用mybatis进行like 模糊查询遇到的问题

时间:2021-12-17 00:09:31
"bdate like '#{date}%' and  ..."

最开始这样写的· 将传入的参数和%用单引号包起来,但是这会报错

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

查阅资料后发现不能使用单引号将占位参数包起来,这样编译后的结果就是  like '?%' 即把占位的“?”作为了参数

然后我想到把通配符加在参数里面传进来,如下所示

"bdate like '#{date}' and  ..."

参数为 "\"2014-04%\""

但是依旧出现异常

通过查阅资料后找到如下解决办法:

1:只把%用引号包起来

"bdate like #{date}\"%\" and  ..."

2: 使用$拼接参数

"bdate like '${date}%' and  ..."