getResultSet() «должен вызываться только один раз для каждого результата»

Согласно документации для getResultSetв java.sql.Statementговорится:

Извлекает текущий результат как объект ResultSet. Этот метод должен вызываться только один раз для каждого результата.

Используя тестовый код, я запустил executeQuery()и несколько вызовов getResultSet()и обнаружил, что возвращаемый ResultSetуказывает на один и тот же объект.Поэтому я предполагаю, что он не возвращает другой ResultSet, который вам нужно будет закрыть по отдельности. Но, конечно, это может быть уникально для моих драйверов JDBC.

В документациидля ResultSetговорится:

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

Это кажется веской причиной, по которой не стоит вызывать его несколько раз, так как это может привести к некоторой ситуации "попался". Если бы это было единственной причиной, я чувствовал, что они могли бы просто сказать это, поэтому я думаю, что это может быть что-то большее, чем просто это.

Кто-нибудь знает, почему нельзя вызывать getResultSetболее одного раза для каждого результата? Этот вопроси вызвал у меня любопытство в первую очередь.

6
задан Community 23 May 2017 в 11:56
поделиться