iBATIS的like

在通常情况下iBATIS的参数在sqlmap中使用#param#的形式,参数名以’#'包着,但当使用sql的LIKE语句时就发生了问题,在单引号中无法使用#param#这种形式。奶奶的,害的我昨天弄了半天,现在总结一下,解决方法:

  1. 当应用SELECT * FROM TABLE WHERE COL LIKE ‘value%’时如果要把’value’以参数代替,可以把整个LIKE后面的字符串全改为参数,即 SELECT * FROM TABLE WHERE COL LIKE #param#,此时参数param的值为字符串”value%”。
  2. 使用’$'将参数名包起来,即SELECT * FROM TABLE WHERE COL LIKE ’$param$%’,此时参数param的值就是字符串”value”。这个方法最好用了!
  3. 使用“||”连接。譬如:SELECT * FROM TABLE WHERE COL LIKE #param#||’%'。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>