как обрабатывать данные набора результатов - PullRequest
0 голосов
/ 06 апреля 2010

Я получаю много записей в моем наборе результатов. Мои опасения:

  1. Как Result Set обрабатывает эти записи внутренне? и
  2. Как программист может обрабатывать эти записи партиями, чтобы не возникало проблем с памятью .?

жду ваших ответов .. Большое спасибо

1 Ответ

2 голосов
/ 06 апреля 2010

Вы можете использовать Statement.setFetchSize () , чтобы контролировать количество записей, извлекаемых в память при выполнении итерации по набору результатов. Но в целом я думаю, что это зависит от драйвера JDBC от того, как он обрабатывает этот параметр и как он сохраняет извлеченные записи в памяти.

РЕДАКТИРОВАНИЕ: Вот пример (теоретически набор результатов будет хранить только 1 запись в памяти):

Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.FETCH_FORWARD);
stmt.setFetchSize(1);
ResultSet srs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
while (srs.next()) {
   String name = srs.getString("COF_NAME");
   float price = srs.getFloat("PRICE");
   // Do your processing...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...