在通常情况下iBATIS的参数在sqlmap中使用#param#的形式,参数名以'#'包着,但当使用sql的LIKE语句时就发生了问题,在单引号中无法使用#param#这种形式。奶奶的,害的我昨天弄了半天,现在总结一下,解决方法:
- 当应用SELECT * FROM TABLE WHERE COL LIKE 'value%'时如果要把'value'以参数代替,可以把整个LIKE后面的字符串全改为参数,即 SELECT * FROM TABLE WHERE COL LIKE #param#,此时参数param的值为字符串"value%"。
- 使用'$'将参数名包起来,即SELECT * FROM TABLE WHERE COL LIKE '$param$%',此时参数param的值就是字符串"value"。这个方法最好用了!
- 使用“||”连接。譬如:SELECT * FROM TABLE WHERE COL LIKE #param#||'%'。