读书人

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

发布时间: 2013-07-04 11:45:55 作者: rapoo

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)+")");

读书人网 >J2SE开发

热点推荐