2 Stimmen

Wann sollte die MySQL-Verbindung beim Verwenden von Java-Servlets geöffnet und wann geschlossen werden?

Ist es in Ordnung, eine Verbindung in der init-Methode zu öffnen und in der destroy-Methode zu schließen? Auch, was ist der beste Weg, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Aktuell nutze ich dies:

Class.forName("com.mysql.jdbc.Driver");

Connection connect = DriverManager.getConnection("jdbc:mysql://" + ipaddress + "?user=" + user + "&password=" + pass);

Aber ich habe irgendwo gelesen, dass dies ineffizient ist und ich einen Verbindungspool verwenden sollte. Wie mache ich das?

6voto

Jon Skeet Punkte 1325502

Ich würde dringend empfehlen, einen Verbindungspool zu verwenden, entweder explizit (wie z.B. c3p0) oder einen, der von Ihrem Servlet-Container bereitgestellt wird.

Öffnen Sie Ihre Datenbankverbindung, wenn Sie sie benötigen, und schließen Sie sie so schnell wie möglich - der Verbindungspool kümmert sich um die tatsächliche Netzwerkverbindung.

Wenn Sie dies nicht tun, landen Sie mit einer Verbindung für Ihre gesamte Anwendung - das bedeutet, dass Sie nur eine Abfrage gleichzeitig verarbeiten können und Ihr gesamter Code sich um Datenbankabfragen koordinieren muss. Sicherlich möchten Sie, dass mehrere vollständig unabhängige Abfragen gleichzeitig ausgeführt werden können? Das ist nicht möglich mit einer einzigen Verbindung.

Was die beste Methode betrifft, eine Verbindung zu öffnen, nachdem Sie einen geeigneten Verbindungspool konfiguriert haben - Sie könnten immer noch DriverManager.getConnection() verwenden, aber den Verbindungspool anstelle von mysql direkt angeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X