Hibernate Grundkonfiguration (Datenbankanbindung)#
Ziel und Zweck dieser Methode ist, den Zugriff auf die Datenbank zur Verfügung zu stellen. Dies wird über ein Objekt vom Typ EntityManagerFactory ermöglicht.Nachdem nun alle Vorbereitungen bei den Bibiotheken und der persistence.xml Datei des Verzeichnisses META-INF abgeschlossen sind kann in Java die "Entity Manager Factory" erzeugt werden.
Es empfiehlt sich alle direkten Datenbankfunktionen in ein gesondertes Paket zu verlagern. Wir legen nun das Paket "de.tth.datenbank" neu an.
In diesem Paket erzeugen wir nun die neue Klasse HibernateUtil.
Es folgt der komplette Quellcode der Klasse HibernateUtil
//************************* //AUTOR : Thomas Thießen //DATUM : 12.07.2011 //ÄNDERUNG : 13.07.2011 //************************* package de.tth.datenbank; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class HibernateUtil { static private EntityManagerFactory emf=null; static public EntityManagerFactory getEntityManagerFactory() { if(emf==null) emf=Persistence.createEntityManagerFactory("dbfilme"); return emf; } }
Zunächst erfolgen die üblichen Import Anweisungen und der Klassenaufruf.
import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class HibernateUtil
Wir erzeugen nun das Feld emf=null vom Typ EntityManagerFactory und belegen es mit dem Wert null. Bei der ersten Verwendung des Feldes emf wird im späteren Programmablauf ein Wert eingetragen. Hierdurch wird sichergestellt, dass bei der ersten Verwendung das Feld emf neu erzeugt wird. Durch dieses Vorgehen wird das Feld nicht bereits beim Progammstart erzeugt und ggf. nicht verwendet. Auch ein mehrmaliges Erzeugen z.b. bei jedem Aufruf einer Methode wird durch dieses Vorgehen verhindert.
Da die Methode statisch ist, muss auch der Speicher statisch sein. Da die Funktion der Methode nur intern verwendet wird, ist der Speicher private.
static private EntityManagerFactory emf=null;
Die statische Methode ohne Parameter ist durch public als öffentliche Methode deklariert. Durch static wird ein mehrfaches erzeugen der Methode verhindert. Die Methode getEntityManagerFactory() kann somit später im Programm jederzeit aufgerufen werden und liefert als Ergebnis unser gewünschtes Objekt emf zurück.
static public EntityManagerFactory getEntityManagerFactory() {
Hier erfolgt die Abfrage, ob es das Objekt emf bereits gibt, oder ob es, wie oben erklärt zum ersten mal verwendet wird.
if(emf==null) emf=Persistence.createEntityManagerFactory("dbfilme");