SQL中用到IN关键字select T.name
from T
where T.id in (?)我用JDBC传进去的值都当作一个字符来看的:
select T.name
from T
where T.id in ('01,02,03')
其实我想这样的:
select T.name
from T
where T.id in ('01','02','03)哪位高手能告诉我怎么传进去?
100分相送

解决方案 »

  1.   

    以前也看到过类似的讨论,结论的确是不行
    至少得(?,?,?)记得一位仁兄提到过说struts变相实现了它,不知道有没有记错
      

  2.   

    不太明白不能这样吗? String inputStr="01,02,03";
    String patternStr=",";
    String replacementStr="','";
    Pattern pattern=Pattern.compile(patternStr);
    Matcher matcher=pattern.matcher(inputStr);
    String output="'"+matcher.replaceAll(replacementStr)+"'";
    System.out.println(output);
    打出来是'01','02','03'
      

  3.   

    不知道用escape行不行
    "select T.name
    from T
    where T.id in (?){escape '/''}";parm="01/',/'02/',/'03";各位,给支个高招吧
      

  4.   

    不能的~除非你用存储过程,或者动态SQL语句……不过还是要存储过程……汗~
    你可以写成"select T.name from T where T.id in (?...?)" 中间的?的个数是循环生成的,传过来几个值就可以写几个?,后面的setString(n,xxx)这个n也是循环出来的