Согласно документации для getResultSet
в java.sql.Statement
говорится:
Извлекает текущий результат как объект ResultSet. Этот метод должен вызываться только один раз для каждого результата.
Используя тестовый код, я запустил executeQuery()
и несколько вызовов getResultSet()
и обнаружил, что возвращаемый ResultSet
указывает на один и тот же объект.Поэтому я предполагаю, что он не возвращает другой ResultSet
, который вам нужно будет закрыть по отдельности. Но, конечно, это может быть уникально для моих драйверов JDBC.
В документациидля ResultSet
говорится:
Объект ResultSet по умолчанию не подлежит обновлению и имеет курсор, который движется только вперед. Таким образом, вы можете перебрать его только один раз и только от первого ряда до последнего ряда.
Это кажется веской причиной, по которой не стоит вызывать его несколько раз, так как это может привести к некоторой ситуации "попался". Если бы это было единственной причиной, я чувствовал, что они могли бы просто сказать это, поэтому я думаю, что это может быть что-то большее, чем просто это.
Кто-нибудь знает, почему нельзя вызывать getResultSet
более одного раза для каждого результата? Этот вопроси вызвал у меня любопытство в первую очередь.