[解決済み】JDBC結果セットとステートメントは、その後接続を閉じますが、別々に閉じなければなりませんか?
2022-04-02 01:17:04
質問
使用後はすべてのJDBCリソースを閉じるのが良い習慣と言われています。しかし、次のようなコードがある場合、結果セットとステートメントを閉じる必要がありますか?
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = // Retrieve connection
stmt = conn.prepareStatement(// Some SQL);
rs = stmt.executeQuery();
} catch(Exception e) {
// Error Handling
} finally {
try { if (rs != null) rs.close(); } catch (Exception e) {};
try { if (stmt != null) stmt.close(); } catch (Exception e) {};
try { if (conn != null) conn.close(); } catch (Exception e) {};
}
問題は、接続を閉じることで仕事が完了するのか、それとも何らかのリソースが使用されたままなのか、ということです。
解決方法は?
あなたが行ったことは完璧であり、非常に良い実践です。
なぜ、「グッドプラクティス」なのかというと......。例えば、何らかの理由でプリミティブなデータベースプールを使用していて、そのデータベースプールのために
connection.close()
の場合、接続はプールに戻され
ResultSet
/
Statement
を閉じると、さまざまな新しい問題にぶつかることになります。
だから、いつも
connection.close()
を掃除する。
お役に立てれば幸いです :)
関連
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] java.sql.SQLException: - ORA-01000: 開いているカーソルの最大数を超えました。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] java.sql.SQLException: - ORA-01000: 開いているカーソルの最大数を超えました。
-
[解決済み] Javaでデータベース接続を閉じる