2016-04-23 27 views
1

DBConnecterクラスでcloseConnection()メソッドが必要かどうかは疑問でした。私はあなたがあなたがそれを使って終わったときにいつもあなたの接続を閉じると知っていますが、接続がシングルトンであることは完全にはわかりません。ここでMySQL(Java)のシングルトン接続パターンのクローズ

は私のDBConnecterクラスです:

public static String driver = "com.mysql.jdbc.Driver"; 
public static String URL = "jdbc:mysql://localhost/polygondb"; 
public static String ID = "root"; 
public static String PW = "root"; 
private static Connection connection = null; 

public static Connection getConnection() { 
    if (connection == null) { 
     try { 
      Class.forName(driver); 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(DBConnector.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     try { 
      connection = DriverManager.getConnection(URL, ID, PW); 
     } catch (SQLException ex) { 
      Logger.getLogger(DBConnector.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
    return connection; 
} 

それは、このような大したことではないかもしれないが、私はそれが受験のための学校のプロジェクト(あるとして確認する:

答えて

1

オープニングアップデータベースへの接続は高価なプロセスです。シングルトンを使用しているため、すべてのデータベースのやりとりがこのオブジェクトによって処理されていると仮定して、接続を有効にすることをお勧めします。ただし、アプリケーションを終了する前に接続を閉じる。

多くのクエリが同時に発生することを期待している場合は、接続プールを調べたいかもしれませんが、これは学校プロジェクトであるため、これは当てはまりません。

+0

すばやくお返事いただきありがとうございます。だから、私はログインシステムでアプリケーションを持っていると、私はログアウトで接続を中断するだろうか? –

+0

問題ありません。 :) シングルトンはデータベースとの通信を扱っているので、プログラムを起動するときにインスタンス化し、プログラムが存在する直前に接続を閉じるだけです。ユーザーのログインとログアウトを通じて持続する必要があります。ユーザーが最終的にログインする別のユーザーとしてログアウトしたときに、接続を切断する目的はありません。 –