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,
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.
Bei MySql hat die Rückgabe-URL folgende Form:
%Vor% gibt Ihnen Dialect
und
liefert Ihnen die Verbindungs-URL.
Hinweis : Dies funktioniert nur mit der Klasse SessionFactoryImpl
, nicht mit der Schnittstelle
Da Sie entweder eine hibernate.properties oder eine hibernate.cfg.xml haben, können Sie immer Informationen aus diesen Dateien lesen.