SQL = "select * from table where modeCode in (?,?,?)";
..PreparedStatement stmt = conn.preparedStatement(SQL);
stmt.setString(1, "param1");
stmt.setString(2, "param2");
stmt.setString(3, "param3");
rs = stmt.executeQuery();

解决方案 »

  1.   

    楼上的是固定传三个参数吧!
    你这样写
    int n=...;String []params=.....;
    StringBuffer sql="select * from table where modeCode in (";
    for(int i=0;i<n-1;i++) {
    sql.append("?,");
    }
    sql.append("?)");
    PreparedStatement stmt = conn.preparedStatement(SQL);
    for(int i=0;i<n;i++) {
    stmt.setString(i+1, params[i]);
    }
    rs = stmt.executeQuery();
      

  2.   

    用in的不赞成用楼主这样写法
    还是组成完成的SQL好些
    在CS上写时,这种写法都有问题
    取不出数据
    在java没试过
    但还是写成完整的SQL再用prepareStatement吧