Проблема с двумя повторными наборами, открытыми с одним и тем же экземпляром соединения в Java (JDBC)! - PullRequest
0 голосов
/ 03 февраля 2019

В последнее время у меня возникает эта проблема с наборами результатов в java с использованием JDBC.

Чтобы упростить понимание, я проиллюстрирую пример с двумя функциями A и B, поэтому предположим, что мы создаем набор результатов вфункция A, которую мы называем rs1, эта rs1 вернет нам группу книг, которые были заимствованы из библиотеки.

Таким образом, для каждой книги, выбранной из rs1, мы вызываем функцию B, которая определит другой набор результатов rs2.(rs2 был создан с использованием того же экземпляра соединения), чтобы определить, кто заимствовал эту книгу.

Проблема здесь в том, что когда мы извлекаем первую книгу из rs1 и вызываем B после того, как rs1.next () возвращаетложь, поэтому она не проходит мимо первой книги, но когда я не определяю rs2 в B, она работает отлично.Почему это так?

Примечание: rs1 и rs2 созданы с использованием одного и того же экземпляра соединения!

1 Ответ

0 голосов
/ 03 февраля 2019

Используете ли вы один и тот же Statement для выполнения обоих запросов?JDBC допускает только одно открытие ResultSet для каждого Statement, поэтому, если вы используете тот же Statement для внутреннего запроса, он закроет тот, который вы использовали для внешнего запроса.Вы должны иметь возможность делать то, что вы хотите, если вы используете отдельный Statement для внутреннего запроса.

...