Wissen über den zugrunde liegenden Datenbanknamen vom Hibernate-Provider

8

Ich benutze Hibernate 3.x mit Jboss. Derzeit unterstützen wir mehrere Datenbanken.

Wie kann ich zur Laufzeit die zugrunde liegenden Datenbankinformationen kennen? zumindest Name oder Datenbank-Dialekt? (z. B. MySQL, Derby, Oracle usw.)?

Kann jemand irgendeinen Weg vorschlagen, diese Informationen zu finden? Ich dachte, Hibernate SessionFactory-Klasse wird solche API bieten - aber es ist nicht?

Vielen Dank im Voraus,

    
user530081 04.12.2010, 01:37
quelle

6 Antworten

8

Ich denke, du kannst es so machen:

%Vor%     
javamonkey79 04.12.2010 01:54
quelle
7

Vielen Dank javamonkey79 und costis für die Beantwortung dieser Frage.

Ja - Ich kann die Datei hibernate.properties/cfg.xml lesen - aber ich wollte den Workflow zum Lesen von Dateien vermeiden.

Es scheint, dass Session::connection() api jetzt veraltet ist, aber es funktioniert immer noch. Wir können die gleichen Informationen auch auf andere Weise wie unten aufgeführt abrufen.

OPTION 1

%Vor%

OPTION 2

%Vor%

Bei MySql hat die Rückgabe-URL folgende Form:

%Vor%     
user530081 05.12.2010 06:43
quelle
3
%Vor%

gibt Ihnen Dialect und

%Vor%

liefert Ihnen die Verbindungs-URL.

Hinweis : Dies funktioniert nur mit der Klasse SessionFactoryImpl , nicht mit der Schnittstelle

    
user321068 25.10.2011 08:43
quelle
3

Oder Sie können es versuchen:

%Vor%     
louis xie 20.01.2012 06:01
quelle
1

Da Sie entweder eine hibernate.properties oder eine hibernate.cfg.xml haben, können Sie immer Informationen aus diesen Dateien lesen.

    
Costis Aivalis 04.12.2010 01:51
quelle
1

und Sie können diesen Code versuchen:

%Vor%

;)

    
Vito 08.11.2013 05:50
quelle

Tags und Links