天下第二博

Tian Xia The Second BO
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

iBATIS的like

Posted on 2011-02-11 17:40  Nuke'Blog  阅读(254)  评论(0编辑  收藏  举报

在通常情况下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#||'%'