Sollten Sie eine Datenbank-Verbindung geöffnet bleiben, die ganze Zeit oder nur bei Bedarf geöffnet werden?
Habe ich ein bukkit plugin (minecraft) , ist eine Verbindung zu der Datenbank.
Verzeihen Sie die noob Frage, aber sollte eine Datenbank-Verbindung geöffnet bleiben, die ganze Zeit, oder geöffnet und geschlossen werden, wenn es nötig ist?
InformationsquelleAutor der Frage aman207 | 2013-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Datenbank-Verbindung geöffnet werden muss, nur dann, wenn Sie gebraucht wird und geschlossen wird, nachdem alle notwendigen job mit es. Code-Beispiel:
Vor Java 7:
Java 7:
Aber da manuell öffnen einer Datenbank-Verbindung ist zu teuer, es wird dringend empfohlen einen database connection pool. Dies wird den physischen Datenbank-verbindungen für Sie, und wenn Sie schließen es (d.h. das aufrufen
Connection#close
), der physischen Datenbank-Verbindung nur im Standby-Modus und immer noch offen sein.Verwandte Q/A:
Einige Werkzeuge zu handhaben database connection pooling:
InformationsquelleAutor der Antwort Luiggi Mendoza
Hängt davon ab, was sind Ihre Bedürfnisse.
Erstellen einer Verbindung einige Zeit in Anspruch nimmt, also, wenn Sie brauchen, um access-Datenbank-Häufig ist es besser, halten Sie die Verbindung offen. Auch ist es besser, einen pool zu erstellen, so dass viele Benutzer Zugriff auf die Datenbank gleichzeitig(sofern erforderlich).
Wenn Sie müssen, verwenden Sie diese Verbindung nur zu wenigen Zeiten, die Sie vielleicht nicht halten Sie es offen, aber Sie haben Verspätung, wenn Sie möchten, um access-Datenbank. Also ich schlage vor, Sie machen einen timer, wird die Verbindung aufrecht für einige Zeit(timeout der Verbindung).
InformationsquelleAutor der Antwort qiGuar
Eigentlich ist es allen egal, wie Sie schreiben Ihre Bewerbung! Es ist eine Kunst, aber leider hat jeder eine Anleitung für eine gute Praxis, wie Microsoft tutorials.
Wenn Sie wissen, was Sie codieren, dann halten Sie Ihre Verbindung öffnen Sie für die Lebensdauer der Anwendung. Es ist einfach, nicht, weil Sie gehen morgens zur Arbeit, die haben wir jeden Tag zu bauen, eine spezielle route, nur für Sie! Sie nehmen, dass eine einzige route oder 2 oder 4 wie jeder andere Mensch auch! Sie beurteilen für den Verkehr, und bauen Sie 2, 4 oder 6 Strecken, wie gebraucht. Wenn es der Verkehr mit diesen 4 oder 6 Routen, warten Sie!
Happy coding.
InformationsquelleAutor der Antwort intiko81
Müssen Sie schließen Sie Ihre verbindungen nach jeder Ausführung von Abfragen.Manchmal müssen Sie ausführen mehrerer Anfragen zur gleichen Zeit, da die Abfragen hängen voneinander ab.Wie "legen Sie zuerst Aufgabe weisen Sie den Mitarbeitern".In dieser Zeit führen Sie Ihre Abfragen auf die gleiche transaction und commit es, wenn einige Fehler auftreten, dann rollback.By standardmäßig autocommit ist deaktiviert in JDBC. Beispiel
Verbindungspooling verwenden.Wenn Sie die Entwicklung einer webapplication dann App Server connection pooling.App-server verwenden die gleiche pooling für jede Ihrer Anwendungen, also können Sie die Steuerung der Verbindung aus zählen einen Punkt.Empfehlen Sie den Apache Tomcat-Connection-pooling.Beispiel
Als zusätzliche info:
Connection, Statement und ResultSet.
1.Wenn Sie die Verbindung schließen, die Sie nicht brauchen close-Anweisung oder resultset.Beide werden automatisch geschlossen
2.Wenn Sie die close-Anweisung schließt er ResultSet auch
3.wenn du mit try-mit-Ressourcen wie diese:
schließt er die Verbindung automatisch.Da try-mit-Ressourcen erfordern autoclosable Objekte und die Verbindung ist autocloseable.Sie können sehen, die details über try-mit-Ressourcen hier
InformationsquelleAutor der Antwort Sarkhan
Den Anschluss sollte nur geöffnet werden, wenn erforderlich. Wenn es geöffnet ist, bevor Sie den tatsächlichen Bedarf an, reduziert es eine aktive Verbindung aus dem connection pool..so ist es letztlich die Effekte der Benutzer der Anwendung.
So,es ist immer eine bessere Praxis zum öffnen der Verbindung nur bei Bedarf und schließen Sie nach Abschluss des Prozesses.
Immer versuchen puttting Sie eine enge Verbindung der Logik in den finally-block, der dafür sorgen wird, dass Ihre Verbindung wird geschlossen,selbst wenn eine Ausnahme Auftritt in der Anwendung
InformationsquelleAutor der Antwort Sai Avinash
Jedes mal, wenn Sie verbinden, Sie haben eine Verzögerung, jetzt vorstellen, was passiert, wenn Sie immer eine Verbindung herstellen und schließen
InformationsquelleAutor der Antwort Itrulia