エラー:ResultSetが閉じた後の操作は許可されません。
今日、学校のWebサイトに問題が発生し、エラーメッセージが表示されました。 ResultSet を閉じた後の操作は許可されていません。 ウェブで検索した結果、以下のように問題を解決する記事を見つけました。
複数の rs 操作を含む stmt は、以下の問題を引き起こします。 結果セットが閉じている エラー
1つのstmtで複数のrsを操作する。
そして、その stmt の rs1 を直ちに操作してから、他の rs2 を操作する必要があります。
これらを入れ替えて使用すると、rsがクローズされることになります
エラー
.
エラー
のコードは
:
stmt=conn.createStatement()。
rs=stmt.executeQuery("select * from t1")を実行します。
rst=stmt.executeQuery("select * from t2")を実行します。
rs.last();// rst=stmt.executeQuery(sql_a); の実行により、rsはクローズアウトされます!rs.last();の実行により、rstはクローズアウトされます。そのため、プログラムの実行は、この時点でプロンプトが表示されます。
結果セット
が閉じられました。
エラー
メッセージは
:
java.sql.SQLException
:
操作方法
ではなく
可
後
結果セット
閉鎖
rst.last()。
正しいコード
:
stmt=conn.createStatement()。
rs=stmt.executeQuery("select * from t1")を実行します。
rs.last();// rs に対する操作をすぐに行い、操作後にデータベースから rst を取得し、rst に対する操作を行う必要があります。
rst=stmt.executeQuery("select * from t2")とします。
rst.last()。
その理由は
:
静的SQL文を実行し、その結果を返すために使用されるオブジェクトです。
デフォルトでは、1つの
結果セット
オブジェクトを同時に開くことができます。したがって、もし1つの
結果セット
オブジェクトの読み込みと別のオブジェクトの読み込みが混在している場合、それぞれ別の Statement オブジェクトによって生成されている必要があります。 インターフェイスは、Statement の現在の
結果セット
オブジェクトが存在する場合、そのオブジェクトを開くことができます。
1つのstmtは1つのrsに対応するのが理想的ですが、1つのstmtで2つのrsを同時に開くと、このようなことが起こり得ます。
そこで、このような問題を解決するために
:
1. 1つのrsに対して1つのstmtを作成すればよい。2. 複数のrsに対して1つのstmtを使用する場合、1つのrsだけを取得して操作し、他の処理は上記の"正しいコード"のように最初のrsの後に行うことができます。
複数のstmtをそれぞれのrsのために使用する。
stmt=conn.createStatement()です。
stmt2=conn.createStatement()を使用します。
rs=stmt.executeQuery("select * from t1")を実行します。
rst=stmt2.executeQuery("select * from t2")を実行します。
rs.last()。
rst.last()。
関連
-
アクセス制限です。タイプ 'BASE64Decoder' は API ではない (必要なライブラリ xxx の制限)
-
Javaでエラーが発生しました。非静的フィールドへの静的な参照を作成できません。
-
エラー: jdkのバージョンの問題により、クエリへの参照が曖昧になる
-
Springの構成でエラーなくIntelliJのアイデア、アセンブリオブジェクトは、自動配線できませんでした。
-
JAVAMail TLS配信の注意点
-
環境変数JAVA_HOME(値xxx)が有効なJVMのインストール先を指していません。
-
java にリソースリークがある: 'input' が閉じられない Solution
-
既に使用されているアドレス:JVM_Bind (ポート競合)
-
中に内部エラーが発生しました。「pro-test 用のディスクリプタをロードしています。
-
トークンに関する構文エラー、代わりに AnnotationName が期待される 構文エラー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
xxx は型に解決できない エラー解決
-
List<Integer> 型をインスタンス化できません。
-
Map<String,Boolean> 型をインスタンス化できません。
-
Java の例外解決。コンストラクタの呼び出しはコンストラクタ内の最初のステートメントでなければならない
-
互換性のない型です。ArrayList<ArrayList<Integer>>はList<List<Integer>>に変換できない。
-
Java 文字クラスとメソッド
-
Error: missing `server' JVM at `C:\Program Files (x86)\Javajre1.8.0_151bin server╱jvm.dll'.
-
java にリソースリークがある: 'XXX' は決して閉じられない ソリューション
-
未処理の例外:java.text.ParseException
-
org.apache.tools.zip を使用した Zip 圧縮・解凍