2016-05-27 10 views
-1

私が構築したJavaプロジェクトで静的メソッドを使用して、ローカルホストmysql dbにクエリを行います。そのようなローカルホストでjdbc接続を閉じる必要があります

何か:

public static void sqlQuery() { 
    Connection conn = null; 
    PreparedStatement stmt = null; 
    ResultSet rs = null; 
    try { 
     conn = DriverManager.getConnection(localhost,root,password); 
     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) {}; 
    } 
} 

私は近いそれなしでCONN変数を保持し、別のクエリのために再びそれを再利用することができれば、私の質問です。

他のアプリは、このDBを使用していないと私は1つのだけ接続して、私がしたいことを行うことができます。..

P.S.

+0

はい、**しかし**そうすることで、データベース上のリソースが消費され、開いている接続の最大数に制限があります。 –

答えて

0

接続はスレッドセーフではないため、1つだけを使用すると危険が生じます。接続プールを使用し、論理アクティビティごとに新しい論理接続を使用する必要があります。

0

あなたは常にJDBC接続のようなリソースを閉じるべきです。それらを閉じないと、resource leakが作成され、プログラムが遅くなる可能性があります。

1

同じコンテキストで接続を再利用できます。コンテキストを変更したら、以前の接続を閉じて別の接続を再度開く必要があります。

0

スレッドセーフではないため、常に接続を閉じることをお勧めします。また、接続オブジェクトをシングルトンとして保持することはお勧めしません。

関連する問題