java.sql.SQLException: ResultSet が閉じた後の操作は許可されません。
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:794)
at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7145)
at org.xxx.similarity.Similarity.createIndexTable(Similarity.java:26)
at org.xxx.similarity.similarity.main(similarity.java:56)
<スパン
<スパン <スパン
Baiduこの問題、与えられた解決策は、です。
<スパン <スパン <スパン 操作するstmtが複数のrsである。その場合、stmt の rs1 を直ちに操作してから、他の rs2 を操作しなければならない。
<スパン <スパン 使い分けではなく、rs is closed エラーが発生します。このエラーのコードは次のとおりです。
<スパン <スパン <スパン stmt=conn.createStatement()。
<スパン <スパン rs=stmt.executeQuery("select *) fromt1")となります。
<スパン <スパン <スパン rst=stmt.executeQuery("セレクト *) をt2")から削除してください。
<スパン rs.last();// rst=stmt.executeQuery(sql_a); の実行で、rsはクローズアウトされます! ということで、ResultSetが閉じられたというメッセージを表示したまま、ここまで実行されます。
<スパン <スパン エラーメッセージは次のとおりです: java.sql.SQLException:Operation not allowed after ResultSet closed rst.last();
<スパン <スパン 正しいコードです。
<スパン <スパン <スパン stmt=conn.createStatement()。
<スパン <スパン rs=stmt.executeQuery("select * fromt1") を実行します。
<スパン <スパン rs.last();// rsに対する操作をすぐに行い、操作後にデータベースからrstを取得し、rstに対する操作を行う必要があります。
<スパン <スパン rst=stmt.executeQuery("select * from t2");
<スパン <スパン rst.last()。
<スパン
<スパン
<スパン <スパン このエラーの原因のひとつはもちろんこれですが、もうひとつ、次のコードをご覧ください。
<スパン
<スパン
Class.forName("com.mysql.jdbc.Driver")を使用します。
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/hellosql","root", "123") を実行しました。
stmt=conn.createStatement()。
<スパン <スパン sql= "SELECT LAST_INSERT_ID() from"+tableName;
<スパン <スパン rs =stmt.executeQuery(sql)。
<スパン <スパン while(rs.next()){。 <未定義
<スパン
<スパン
<スパン
<スパン
<スパン
}
rs.close()を実行します。
<スパン <スパン rs =null。
<スパン <スパン stmt.close()を実行します。
<スパン <スパン stmt =null。
<スパン <スパン con.close()を実行します。
<スパン <スパン con =null。
<スパン
<スパン
<スパン
<スパン <スパン <スパン <スパン その理由は executeUpdate関数とexecute関数は、自動的にresultSetを返します!
boolean java.sql. ステートメント .execute() 文字列 sql) をスローします。 SQLException
<スパン
<スパン
<スパン
与えられたSQL文を実行し、複数の結果を返すことがあります。状況によっては(まれですが)、一つの SQL 文が複数の結果セットや更新回数を返すことがあります。(1) 複数の結果を返すことがわかっているストアドプロシージャを実行している場合、または (2) 未知の SQL 文字列を動的に実行している場合以外は、通常はこれを無視してもかまいません。
は
execute
メソッドは SQL 文を実行し、最初の結果の形式を示します。
getResultSet
または
getUpdateCount
で結果を取得し
getMoreResults
を押すと、その後に続く結果に移動します。
関連
-
[解決済み】MySQL 派生テーブルはすべて独自のエイリアスを持つ必要があります。
-
[解決済み] mysqldです。dir を data に変更できません。サーバーが起動しません
-
[解決済み] MySQLで日付のみのパラメータを使用してタイムスタンプの日付を比較する方法は?
-
[解決済み] ルートユーザーでログインしているのに、phpMyAdminがデータベースを作成する権限がないと言う
-
[解決済み] 各単語の最初の文字を大文字にする(既存のテーブルの場合
-
[解決済み] MySQL でネストされたトランザクションは可能ですか?
-
[解決済み] mysql が内部または外部のコマンド、操作可能なプログラムまたはバッチとして認識されない。
-
[解決済み] ビューの SELECT には FROM 句にサブクエリが含まれています。
-
初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーが発生しました。0
-
[Err] 1273 - 不明な照合順序: 'utf8mb4_0900_ai_ci' これは、データベースにテーブルをインポートするときのエラーです、すべてのエラー
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
コマンドでmysqlに接続中、'mysql'が内部または外部コマンドとして認識されない エラーは解決されました。
-
[解決済み] エラー 1115 (42000)。不明な文字セットです。'utf8mb4'
-
[解決済み] ERROR 1148: 使用されたコマンドはこのMySQLバージョンでは許可されていません。
-
[解決済み] JDBC経由でMySQLにUTF-8を挿入しようとすると、"不正な文字列値 "と表示される?
-
[解決済み] MySQL Workbenchが「このサーバーバージョンでは、この位置は無効です」というエラーを報告する。
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] mysqlとphpmyadminの違い?
-
[解決済み] フォワードエンジニアはMySQL Workbenchで何もしていない
-
[解決済み] 互換性のあるサーバーが見つかりませんでした - MySQL
-
未定義の関数 mysql_connect() の呼び出し 解決方法概要