У меня есть запрос, который возвращает миллионы записей, которые содержатся в наборе результатов. Я должен обработать (вставить / обновить) эти записи. Вместо того, чтобы вставлять все записи сразу, я хотел бы разбить результирующий набор на куски по 500 записей каждый и сохранить их в ArrayList
или Vector
и обрабатывать эти 500 записей одновременно.
Как разделить набор результатов на куски и сохранить их в ArrayList
или Vector
, не просматривая миллион записей?
Я нашел ответ, получил возможность использовать CachedRowSet вместо результирующего набора. и используйте set setPageSize
CachedRowSet crs = new CachedRowSetImpl();
crs.setPageSize(500);
crs.execute(conHandle);
и затем используйте
while(crs.nextPage()) {
collection obj = crs.toCollections();
}
это обеспечит возможность обработки больших данных в более мелкие куски
но у меня есть вопрос, как заполнить crs, передавая объект подключения, где упоминается строка запроса ??