Ich habe eine Desktop-App, wo ich die Gültigkeit der Verbindung zwischen der App und der Datenbank testen möchte. Was ist der beste Weg, dies beim Start meiner App zu testen? Im Moment scheint der Versuch, eine Transaktion zu starten und die Ausnahme abzufangen, die Aufgabe zu erfüllen. Gibt es einen besseren Weg?Überprüfen Sie die Datenbankverbindung mit Hibernate beim Start
Antwort
Ich denke nicht, dass dies ein Job für Hibernate oder Ihren Code sein sollte. Es sollte in den Verbindungspool integriert werden, den Sie verwenden.
Wenn Sie auf einem Java EE-Anwendungsserver bereitgestellt werden, wäre dies Teil der Konfiguration des JNDI-Verbindungspools. Sie können es bitten, Verbindungen zu überprüfen, bevor Sie sie mit einer Abfrage verteilen (z. B. "SELECT 1 FROM DUAL" für Oracle).
Ich würde empfehlen, das außerhalb Ihrer App zu tun. Lassen Sie einen Verbindungspool Verbindungen verwalten.
Es kann ein erweiterter Verbindungspool mit Hibernate, genannt c3p0, konfiguriert werden. Gerade liefern den Konfigurationsparameter in der persistence.xml:
<property name="hibernate.c3p0.testConnectionOnCheckout" value="true"/>
Hibernate werden dann versuchen, die notwendigen Klassen zuzugreifen. Mit Maven konfigurieren Sie:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.1.8.Final</version>
</dependency>
Hinweis: Ich werde nicht ignorieren, dass einige sagen, Testverbindungen vor der Verwendung teuer ist. Ich denke, die Konsistenz einer Anwendung hat einen Vorteil. Und teuer ist relativ bei der Ausführung von echten SQL-Anweisungen, selbst in einfachen Fällen weniger als 10%.
- 1. Datenbankverbindung über Hibernate in Servlets
- 2. Hibernate Erstellen leerer Tabelle - Hibernate_sequence beim Start
- 3. Java Hibernate Throws Ausnahme beim Start
- 4. Meteor: Überprüfen Sie, ob der Benutzer beim Start angemeldet ist
- 5. Hibernate Start sehr langsam
- 6. Starten Sie die Chrome-Anwendung beim Start
- 7. So überprüfen Sie die Hibernate-Zuordnung für die Datenbank
- 8. Wie überprüfen Sie die Dateigröße beim Hochladen
- 9. So überprüfen Sie, ob die Taste beim Start in Java gedrückt wird
- 10. Crystal Reports - schließen Sie die Datenbankverbindung
- 11. Überprüfen Datenbankschema entspricht SQLAlchemy Modelle beim Start der Anwendung
- 12. CakePHP So ändern Sie die Datenbankverbindung
- 13. Meine WatchOS2 App beim Start mit Spinner
- 14. Android TabLayout wählen Sie die erste Registerkarte beim Start
- 15. Bind Ausnahme nur beim Start beim Start [Raspbian]
- 16. Hilfe mit Datenbankverbindung
- 17. MarkLogic-Datenbankverbindung mit Jasper-Server
- 18. Vermeiden Sie SizeChanged Ereignis beim Start
- 19. Legen Sie NSPopUpButton beim ersten Start
- 20. Entscheiden Sie zwischen den Storyboards beim Start
- 21. Begrüßen Sie den Benutzer beim Start mit Sprache
- 22. Daten beim Start laden
- 23. Datenbankverbindung mit c3p0
- 24. Multidplyr mit Datenbankverbindung
- 25. Formular beim Start verstecken
- 26. jquery Fehler beim Start
- 27. Argumente mit Powershell-Skripts beim Start
- 28. Admin Benutzeranmeldung beim Start mit DrupalVM?
- 29. Chrome Erweiterung mit XMLHttpRequest langsam beim Start
- 30. Fehler beim ersten Start zusammen zu starten Spring und Hibernate - Getting 'Fehler beim Erstellen von Bean'