mybatis中Parameter index out of range (1 > number of parameters, which is 0).

 

链接地址[2024 Java面试题整理https://pan.quark.cn/s/1c2bc87f7ec7]

Parameter index out of range (1 > number of parameters, which is 0).(参数索引超出范围)

在mybatis里面写就是应该是 like  '%${name} %' 而不是 '%#{name} %'  

${name} 是不带单引号的,而#{name} 是带单引号的

所以,当你用到 like '%#{name}%' 会报这种错误

----------------------------------更新 20181114-------------------------

 

但是${name} 是会存在SQL注入问题,首先感谢 @ TeddyXiong 同学的告知

 

对于这种情况,可以采用mysql 语法 CONCAT

 

例如: CONCAT('%',#{name},'%')

 

posted @ 2017-09-03 14:29  码路编程  阅读(20939)  评论(7)    收藏  举报