oracle 用in查询列表超过1000条时会报错,这里提供一个方法,可以使用拼接or in (...) or in (...)...
public static String getInParameter(List list, String parameter) {
StringBuffer sb = new StringBuffer();
String returnString = "";
if(list.size() == 0 || null == list) {
returnString = sb.append(parameter).append("=''").toString();
}
for(int i=0;i<list.size();i++){
if(i==0){
sb.append(parameter);
sb.append("(");
}
sb.append("'");
sb.append(list.get(i).toString());
sb.append("'");
if(i>=900&&i<list.size()-1){
if(i%900==0){
sb.append(") or ");
sb.append(parameter);
sb.append(" in (");
}else{
sb.append(",");
}
}else{
if(i<list.size()-1){
sb.append(",");
}
}
if(i==list.size()-1){
sb.append(")");
}
}
returnString=sb.toString();
return returnString;
}