public int  GetIsNotNull(String  dh_seq)throws Exception{
  //构建数据操作对象
  LogStatement prepStmt = null;
  ResultSet rsResult = null;
  int i=0;
   
  //构建SQL操作
  //所需要构建的sql语句为:select * from account_code where  apply_id  in ( )
  //in( ) 里面的数值个数不确定,是根据传来的结果集个数确定。
  //所以想知道怎么来拼装这个SQL 语句
  try {
   StringBuffer lSQL = new StringBuffer();   
   lSQL.append(" select * from account_code  ");
   //此处怎么拼装?
   lSQL.append(" where  apply_id  in( )");
   
   prepStmt = new LogStatement(conn, lSQL.toString());
   //此处值如何装载进去?
   prepStmt.setString(1, dh_seq);
   
   prepStmt.printQueryString();
   rsResult = prepStmt.executeQuery();
   
   //判断是否有值
   if(rsResult.next()){
    i=-1;
   }else{
    i=1;
   }   
   lSQL = null;
   
   return i;
  } catch (SQLException se) {
   throw Exception("信息出现不可捕获的异常", se);
  } catch (Exception ex) {
   throw Exception(ex.getMessage(), ex);
  } finally {
   // 释放资源
   FreeResource(prepStmt);
  }
}

解决方案 »

  1.   

    最简单的是用for直接把值拼进sql语句,不用?参数的形式。
    若要用?号形式需要用到ARRAY类型。
      

  2.   

    先判断下有没有值,然后循环添加    if (null != apply_id&& !"".equals(apply_id)){                         lSQL.append("  where apply_id  in( ");
    StringBuffer sb=new StringBuffer();
    String[] custNos = custNoString.split(",");
    for(String str:custNos){
    sb.append("?,");
    param.add(str);
    }
    这样循环完了以后,最后多了一个,号,截取掉,别忘了,还要后面半个)
    lSQL.append(sb.toString().substring(0, sb.toString().length()-1)+")");
      

  3.   


    如果是个LIST 
    能写个完整的嘛?
    你现在写的这个我不是看的很明白。
      

  4.   

    先把外部传递的参数通过迭代改成“value1,value2,value3”这样的字符串格式,如果value本事是字符型数据,别忘了单引号StringBuffer sb = new StringBuffer("");
    List list = new ArrayList();
    for(Iterator it = list.iterator();it.hasNext();){
    sb.append(it.next()+",");
    }sb.split(0,sb.length-1);//去除最后的逗号
      

  5.   

    其实就是List的数据结构,转为为逗号分隔的字符串。
      

  6.   


    如果是个LIST 
    能写个完整的嘛?
    你现在写的这个我不是看的很明白。和数组一样的啊。
    for(String str:list){
    sb.append("?,");
    param.add(str);
    }