Databases Reference
In-Depth Information
private void speichern(String[] names){
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
for(String name : names){
Reihen reihe = new Reihen(name);
log.info("Vor save: "+reihe);
session.save(reihe);
log.info("Nach save: "+reihe);
}
transaction.commit();
session.close();
}
Wir übergeben der Methode also einige Namen von Comicreihen, aus denen dann
Objekte vom Typ
Reihe
erzeugt werden. Diese Objekte werden dann mit der
Methode
save
in der Datenbank abgelegt. Bevor wir
speichern
genauer unter
die Lupe nehmen, wollen wir sie einmal aufrufen und uns die Ausgabe ansehen.
Dazu fügen wir die beiden folgenden Zeilen an das Ende des Konstruktors:
String[] namen={"Asterix","Lustiges Taschenbuch"};
speichern(namen);
und ergänzen eine einfache
main
-Methode:
public static void main(String[] args) throws Exception {
new CRUDReihen();
}
Auf der Konsole erscheint - nach vielen anderen Ausgaben:
1499 [main] INFO CRUDReihen - Vor save: 0 Asterix
Hibernate: insert into Reihen (id, name) values (null, ?)
1536 [main] INFO CRUDReihen - Nach save: 1 Asterix
1536 [main] INFO CRUDReihen - Vor save: 0 Lustiges Taschenbuch
Hibernate: insert into Reihen (id, name) values (null, ?)
1537 [main] INFO CRUDReihen - Nach save: 2
Lustiges Taschenbuch
Gleich am Anfang der Methode
speichern
besorgen wir uns ein
Session
-
Objekt und öffnen dann eine Transaktion. In einer Schleife werden die Objekte
vom Typ
Reihen
erzeugt. Nach dem Ende der Schleife wird zunächst die Trans-
aktion und dann die Session geschlossen. Interessant ist der Teil in der Schleife:
Wir erzeugen das Objekt vom Typ
Reihen
mit Hilfe des einparametrigen Kon-
struktors. Im Konstruktor wird das Attribut
id
auf
0
gesetzt. Dem Attribut
name
wird im ersten Schleifendurchlauf der Text
'Asterix'
zugewiesen. Daher erhal-
ten wir eine Ausgabe wie