请注意,sql中,in后某字段值的个数如果大于1000个,应需要特殊处理一下:
/**
* Ids的选项个数大于1000时使用
* @param columns
* @param Ids
* @return
*/
public static String addMoreIn(String columns ,String [] Ids){
if(check(columns,Ids))
return "";
if(Ids.length>0){
StringBuffer sql = new StringBuffer();
for (int i = 0; i < Ids.length; i++) {
if ((i % 1000) == 0 && i > 0) {
sql.deleteCharAt(sql.length() - 1);
sql.append(") or " + columns + " in ( '"+ Ids[i] + "',");
} else {
sql.append("'" + Ids[i] + "',");
}
}
sql.deleteCharAt(sql.length() - 1);
return " and "+columns+" in ("+sql.toString()+") ";
}
return "";
}
public static boolean check(String columns,Object obj)
{
if(columns == null)
return true;
if(obj == null)
return true;
return false;
}