2015-09-23 2 views
1

Что происходит при выполнении инструкции? он извлекает все строки в память? Где строки хранятся в Resultset и как они загружаются в java-программу?Расположение хранилища строк в Resultset

Update

При вызове resultSet.next(); ли он идет к базе данных получить бонус в singleRow вернуться на стороне Java и показать его? и ResultSet имеет cursor похожее на базу данных cursor?

ответ

1

Общепринятое недоразумение заключается в том, что ResultSet должен быть своего рода контейнером, который содержит все строки из запроса, так что люди пытаются передать его вокруг приложения и удивляются тому, что он становится недействительным, когда соединение с базой данных используется для создания он закрывается. ResultSet больше похож на курсор базы данных, это то, что вы используете, чтобы вытаскивать строки из базы данных. ResultSet имеет размер выборки, который подсказывает драйверу, сколько строк он может получить с сервера за раз, чтобы он мог извлекать строки в кусках и буферизировать их, когда они нужны.

1

Это конкретный драйвер. Например. Postgres JDBC загружает все строки по умолчанию в память, Oracle использует курсор на стороне сервера и извлекает только часть строк.

+0

, так что это означает его специфику для водителя – eatSleepCode

Смежные вопросы