ResultSet 例外: "Before Start of Result Set"
ResultSet オブジェクトからデータを取得するときに、次のメッセージを伴う例外が発生する場合があります。 「結果セットの開始前。」このエラーは、カーソルが最初の行に移動する前に結果データにアクセスしようとすると発生します。
この問題に対処するには、試す前に next() メソッドを使用してカーソルを最初の行に明示的に移動するようにしてください。データを取得します。以下の修正されたコードは、この修正を示しています:
ResultSet result = prep.executeQuery(); if (result.next()) { // Move cursor to first row String foundType = result.getString(1); if (!foundType.equals("meet")) { throw new IllegalArgumentException(String.format("Node %d must be of type 'meet', but was %s", meetNID, foundType)); } }
あるいは、while ループを使用して結果セットを反復処理し、処理する行がなくなるまでカーソルを各行に移動することもできます:
ResultSet result = prep.executeQuery(); while (result.next()) { String foundType = result.getString(1); if (!foundType.equals("meet")) { throw new IllegalArgumentException(String.format("Node %d must be of type 'meet', but was %s", meetNID, foundType)); } }
カーソルを最初の行に移動する (またはループを使用して結果セットを反復処理する) と、データを正常に取得して例外を処理できます。優雅に。
以上がResultSet データにアクセスすると「Before Start of Result Set」例外が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。