2011-01-01 12 views
3

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

3

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.

0

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%.

Verwandte Themen