在對Oracle數據庫表使用 in() 查詢的時候,in() 中的數據不能超過 1000 條的限制,
這時候我們就要在程序中對數據進行分割,分割成多個小於 1000 條的數據集,進行多次查詢。
下面就是分割的代碼:
public static List<List<String>> groupList(List<String> list) { List<List<String>> listGroup = new ArrayList<List<String>>(); int listSize = list.size(); //子集合的長度,比如 500 int toIndex = 500; for (int i = 0; i < list.size(); i += 500) { if (i + 500 > listSize) { toIndex = listSize - i; } List<String> newList = list.subList(i, i + toIndex); listGroup.add(newList); } return listGroup; }
分割完后並不能直接用於sql語句,所以需要轉換一下格式,遍歷一下分割后的list,把list內存儲的
數據拼接成字符串就可以了。