可以用参数化的方式拼接sql,比如
StringBuffer Sql=new StringBuffer("SELECT * FROM TABLE");
Sql.append(" WHERE "); //注意WHERE前后的空格。
if(条件1成立) Sql.append(" 字段1='"+条件1+"' AND ");//字段和条件可以自己随意设定
if(条件2成立) Sql.append(" 字段2='"+条件2+"' AND ");
String FinalSQL=sql.toString();
System.out.println(finalSQL);
System.out.println("最后AND位置 "+finalSQL.lastIndexOf(" AND ")); //去掉最有一个AND ;没有AND的情况肯定是没有任何条件成立where也可以不要了
finalSQL=finalSQL.substring(0,finalSQL.lastIndexOf(" AND ")>0? finalSQL.lastIndexOf(" AND "):finalSQL.indexOf("WHERE"));
System.out.println(finalSQL);*注:sql.append(" WHERE "); 就相当于 sql = sql + "where" |