pdf 1.967 kB - Praktische Informatik - Universität Siegen
pdf 1.967 kB - Praktische Informatik - Universität Siegen
pdf 1.967 kB - Praktische Informatik - Universität Siegen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
KAPITEL 3. ENTWICKLUNG DES SYSTEMS<br />
<br />
<br />
<br />
<br />
<br />
Die bei dem zu entwickelnden System verwendeten Konfigurations- und Mapping-Dateien<br />
können im Anhang B nachgeschlagen werden.<br />
Die SessionFactory-Konfigurationsdatei und die Mapping-XML-Dateien werden - für den<br />
Datenbankzugriff mit Hilfe von “Hibernate“ - einmalig angelegt. Um nun aus dem Programm<br />
auf die Datenbank zugreifen zu können, benötigt man ein Objekt, welches die<br />
Instanz der "SessionFactory"-Klasse aus dem Paket "org.hibernate" ist. Dieses Objekt<br />
wird zum Laden der SessionFactory-Konfigurationsdatei und der Mapping-XML-<br />
Dateien verwendet. Es ist üblich, pro Datenbank jeweils nur ein solches Objekt zu erzeugen.<br />
Für den eigentlichen Zugriff auf die Datenbank wird ein Objekt der Klasse<br />
"Session" desselben Pakets benötigt. Dieses Objekt stellt das Bindeglied zwischen der<br />
Applikation und den “Hibernate“-Diensten dar, indem es Methoden für Insert-, Update-,<br />
Delete- und Query-Operationen bereitstellt. Für jeden Datenbankzugriff wird jeweils ein<br />
"Transaction"-Objekt benötigt, dessen Klasse sich ebenfalls im Paket "org.hibernate"<br />
befindet. Die Verwendung dieser Objekte soll nun anhand eines Quellcodeausschnittes<br />
gezeigt werden.<br />
SessionFactury sessFact = new Configuration().<br />
configure().buildSessionFactory();<br />
Session sess = sessFact.openSession()<br />
Transaction trx = sess.beginTransaction();<br />
sess.save(user1);<br />
trx.commit();<br />
trx = sess.beginTransaction();<br />
sess.save(user2);<br />
trx.commit();<br />
trx = sess.beginTransaction();<br />
User newUser1 = (User) sess.load(User.class, user1.getID());<br />
trx.commit();<br />
trx = sess.beginTransaction();<br />
User newUser2 = (User) sess.load(User.class, user2.getID());<br />
trx.commit();<br />
System.out.println(newUser1.getName());<br />
System.out.println(newUser2.getName());<br />
Zudem ist es möglich, mit dem folgenden Befehl, eine Menge von Objekten als Resultat<br />
einer Datenbankabfrage zu erhalten:<br />
java.util.List moreUsers =<br />
sess.createQuery("from Users where NAME=’Michael’").list();<br />
19