Hibernate Einsatzgebiet
Der Einsatz von Hibernate empfiehlt sich, sobald Daten dauerhaft in einer Datenbank
persistiert werden müssen. Da dies eine Anforderung an jede große bis sehr große
Webanwendung ist, kann Hibernate generell für die Speicherung von Daten eingesetzt
werden. In der Praxis werden dazu sogenannte DAO-Klassen1 erstellt, die Lese-
und Schreibvorgänge übernehmen. In ihnen werden die gewünschten Daten mittels der
Hibernate-API-Methoden „saveOrUpdate“ und „delete“ geschrieben. Die HSQL-API hingegen
bietet Möglichkeiten, lesende Abfragen zu erstellen.
Die erstellten DAOs werden wiederum von Service-Schichten über das Strategy-Pattern aufgerufen.
Als Transportcontainer für die Daten dienen Model-klassen (siehe Kapitel 2.2.1.2).
Diese beinhalten lediglich die entsprechenden Properties sowie jeweils eine Getter-
und eine Setter-Methode für jede Property.
Die folgende Klasse demonstriert eine Model-Klasse. Häufig werden diese Klassen auch
als DTO (Data Transfer Object) oder Domain Object bezeichnet.
/**
* Business-Objekt für den Benutzer. *
*
* @author Fabian Rossbacher
*/
public class Benutzer {
/**
* Die eindeutige ID des Benutzers
*/
private Long id;
/** Das Passwort des Benutzers */
private String passwort;
/** Der Vorname des Benutzers */
private String vorname;
/** Der Nachname des Benutzers */
private String nachname;
/** * Die Email-Adresse des Benutzers */
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPasswort() {
return passwort;
}
public void setPasswort(String passwort) {
this.passwort = passwort;
}
// Weitere Getter/Setter
}
Abbildung 17: Benutzer-Objekt
Quelle: Eigene Darstellung
Die erstellten Domain-Objekte können Werte in der Oberfläche annehmen
und diese durch die Service-Schicht bis hin zu den DAOs übertragen.
Dieser Weg ist auch in der entgegengesetzten Richtung möglich. Die in
der Oberfläche erstellten Domain-Objekte können durch den Service-Layer
bis zur Persistierung übertragen werden.
Abbildung 18 verdeutlicht das Schichtenmodell in einer J2EE-Anwendung.
Abbildung 18: Schichtenmodell in einer J2EE-Anwendung
Diese Art des Einsatzes von Domain-Objekten erspart überflüssigen
Code in den einzelnen Schichten. Darüber hinaus wird ein Standard für den
Transport von Daten definiert.