我现在要拼个sql.但是我要用到in().
select * from student where student_id in(?,?,?)但是现在我不确定我in()里面参数的个数?怎么办啊?还能拼么?

解决方案 »

  1.   

    不写完整代码了。以下几个是代码实现要点① 首先将参数存放在一数组或List中。得到个数N② SQL语句拼接,可用StringBuffer
    String sqlPrefix="select * from student where student_id in(";
    for(int i=0; i<N-1; i++) {
        sqlPrefix += "?,"
    }
    sqlPrefix += "?)";③ 设置SQL文参数
    for(int i=0; i<N; i++) {
        preparedStatement.setString(i+1, params[i]);
    }④ 执行查询
    preparedStatement.executeQuery();Good Luck~
      

  2.   

    2楼的大侠  你第②步中
    String sqlPrefix=" select * from student where student_id in
    (";for(int i=0; i<N-1; i++) {sqlPrefix += "?,"}sqlPrefix += "?) ";
    有点看不明白呢  到底几个  ?
      

  3.   

    2楼的大侠 你第②步中
    String sqlPrefix=" select * from student where student_id in
    (";for(int i=0; i<N-1; i++) {sqlPrefix += "?,"}sqlPrefix += "?) ";
    有点看不明白呢 到底几个 ?有个N个参数
      

  4.   

    楼主,相信我一句话,不要自己拼了.
    用IBatis吧,你会发现灰常方便.
      

  5.   

    2楼的能把String 换成StringBuffer or StringBuilder就更好了。
      

  6.   

    传Map<String,Object> params进来
    if(params!=null){
        if(params.con...(key)){
           sql+=".......";
           
           放入:params.get(key);
        }
    }