ホームページ > データベース > mysql チュートリアル > 「while (rs.next())」ループの後に「java.sql.SQLException: Exhausted Resultsset」が発生するのはなぜですか?

「while (rs.next())」ループの後に「java.sql.SQLException: Exhausted Resultsset」が発生するのはなぜですか?

Linda Hamilton
リリース: 2025-01-06 03:08:39
オリジナル
774 人が閲覧しました

Why Does `java.sql.SQLException: Exhausted Resultset` Occur After a `while (rs.next())` Loop?

java.sql.SQLException: Exhausted Resultsset

データベース クエリを実行するときは、ResultSet オブジェクトを適切に処理することが重要です。 ResultSet が使い果たされた後にさらにデータにアクセスしようとすると、Java は「java.sql.SQLException: Exhausted Resultsset」エラーをスローする可能性があります。このエラーは通常、while (rs.next()) ループの完了後に列値にアクセスするときに発生します。

次のコード スニペットを検討してください。

if (rs != null) {
  while (rs.next()) {
    count = rs.getInt(1);
  }
  count = rs.getInt(1); // This line attempts to access a value after the ResultSet has been exhausted and will throw the error.
}
ログイン後にコピー

while ループの完了後、ResultSet が枯渇しており、これ以上データを取得できません。この時点で rs.getInt(1) を使用して列値にアクセスしようとすると、「結果セットが枯渇しました」エラーが発生します。

この問題を解決するには、列値へのアクセスが while (rs) 以内に発生するようにしてください。 .next()) ループ。例:

if (rs != null) {
  while (rs.next()) {
    int count = rs.getInt(1);
  }
}
ログイン後にコピー

以上が「while (rs.next())」ループの後に「java.sql.SQLException: Exhausted Resultsset」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート