DB接続の切断

3125 ワード

WHY?


MYSQLでは、しばらく待ってから、より多くのリクエストがなければ接続を解除します.
開発者が明示的に接続を切断すると、パフォーマンスを無駄にすることなく、リソースをすぐに切断できます.

WHAT?


DBは、以下の操作を行う.
1.データベース・サーバに接続するためにJDBCドライバをロードします.
2.データベース接続情報とDriverManager.getConnection()メソッドでDB Connectionオブジェクトを取得します.
3.Connectionオブジェクトからクエリーを実行するためのPreparedStatementオブジェクトを受信します.
4.executeQueryを実行し、ResultSetオブジェクトを受信してデータを処理します.
5.処理が完了したら、処理で使用したリソースをクローズして戻します.
これで、解除する必要があるリソースは以下の通りです.
  • 接続(データベースへの接続)
  • ステータス(クエリ文オブジェクト)
  • 結果オブジェクト
  • HOW?


    Java 7のこのバージョンでは、try-catch-finallyを使用して1つずつ解除する必要があります.
    7後のバージョンからtry-with-resourceを使用してより簡単に解除できます.方法は次のとおりです.
     try (
             Connection conn = DriverManager.getConnection(dburl, dbuser, dbpasswd);
             PreparedStatement ps = conn.prepareStatement(sql)
             ResultSet rs = ps.executeQuery()
       ){
       ...
    
    9版からは、必ずしもtryカッコではなく、try block以外の宣言も自動的に解除されます.
    Connection conn = DriverManager.getConnection(dburl, dbuser, dbpasswd);
       PreparedStatement ps = conn.prepareStatement(sql);
    
    try{
    ...
    }