2016-04-23 8 views
1

Ich fragte mich, ob ich eine CloseConnection() -Methode in meiner DBConnecter-Klasse benötigen. Ich weiß, dass Sie normalerweise Ihre Verbindung schließen würden, wenn Sie damit fertig sind, aber da die Verbindung ein Singleton ist, bin ich mir nicht ganz sicher.Schließen Sie die Verbindung für Singleton-Verbindungsmuster für MySQL (Java)

Hier ist meine DBConnecter Klasse:

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; 
} 

Es ist nicht so eine große Sache sein könnte, aber ich will sicher machen, wie es ein Schulprojekt für die Prüfung ist (:

Antwort

1

Die Öffnung eines Die Verbindung zu einer Datenbank ist ein teurer Prozess.Weil Sie ein Singleton verwenden und davon ausgehen, dass alle Ihre Datenbankinteraktionen von diesem Objekt gehandhabt werden, würde ich empfehlen, die Verbindung am Leben zu halten.Sie wollen jedoch die Verbindung vor dem Beenden der Anwendung schließen

Wenn Sie erwarten, dass viele Abfragen gleichzeitig auftreten, möchten Sie vielleicht in Verbindungspools schauen, aber da dies ein Schulprojekt ist, würde ich annehmen, dass dies nicht der Fall ist.

+0

Vielen Dank für die schnelle Antwort! Also, wenn ich eine Anwendung mit einem Login-System habe, würde ich die Verbindung beim Abmelden unterbrechen? –

+0

Kein Problem. :) Da Ihr Singleton mit der Kommunikation mit der Datenbank zu tun hat, sollten Sie es instanziieren, wenn Sie Ihr Programm starten und die Verbindung nur schließen, bevor Ihr Programm existiert. Es sollte durch das An- und Abmelden von Benutzern bestehen bleiben. Es gibt keinen Grund, die Verbindung abzubrechen, wenn sich ein Benutzer abmeldet, da sich ein anderer Benutzer schließlich anmeldet. –