不用这么麻烦,你可以定义个boolean的变量,用来记录传参是不是description,如果是,在paramList的循环里做模糊拼接,不是,就不用boolean descFlag=false; //标记传来的参数是否为description,为后面的模糊查询SQL语句拼接做准备
if (desc!=null && !"".equals(desc.trim())){
sql.append(" and description like ?");
descFlag=true; //如果传参description,设为真
paramList.add(desc);
}
try {
//System.out.println(sql.toString()); //用于调试输出SQL语句
ps = conn.prepareStatement(sql.toString());
if (paramList.size()>0){
for (int i=0;i
//如果flag为真,做模糊查询拼接,否则,无需拼接
if (descFlag)
ps.setString(i+1, "%"+paramList.get(i)+"%");
else
ps.setString(i+1, paramList.get(i));
//System.out.println(paramList.get(i));//调试输出参数值
}
}