首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java里面SQL 语句拼装有关问题

2013-07-04 
java里面SQL 语句拼装问题public intGetIsNotNull(Stringdh_seq)throws Exception{//构建数据操作对象LogS

java里面SQL 语句拼装问题


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);
  }
}

[解决办法]
先判断下有没有值,然后循环添加    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)+")");

热点排行