一共需要两个方法.
1. public static String getInParameter(List<String> list, String parameter) {
if (!list.isEmpty()) {
List<String> setList = new ArrayList<String>(0);
Set set = new HashSet();
StringBuffer stringBuffer = new StringBuffer();
for (int i = 1; i <= list.size(); i++) {
set.add("'" + list.get(i - 1) + "'");
if (i % 100 == 0) {//100为阈值
setList.add(StringUtils.join(set.toArray(), ","));
set.clear();
}
}
if (!set.isEmpty()) {
setList.add(StringUtils.join(set.toArray(), ","));
}
stringBuffer.append(setList.get(0));
for (int j = 1; j < setList.size(); j++) {
stringBuffer.append(") or " + parameter + " in (");
stringBuffer.append(setList.get(j));
}
return stringBuffer.toString();
} else {
return "''";
}
}
2. 是StringUtils.join()方法.
public static String join(Object[] array, String separator) {
if (array == null) {
return null;
}
int arraySize = array.length;
int bufSize = (arraySize == 0 ? 0 : ((array[0] == null ? 16 : array[0].toString().length()) + 1) * arraySize);
StringBuffer buf = new StringBuffer(bufSize);
for (int i = 0; i < arraySize; i++) {
if (i > 0) {
buf.append(separator);
}
if (array[i] != null) {
buf.append(array[i]);
}
}
return buf.toString();
}