Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 5. Auflage
 <<    <     >    >>   API  Kapitel 45 - Objektorientierte Persistenz

45.1 Einleitung



In Kapitel 42 haben wir gesehen, wie wir mit Hilfe von Datenbank-Treibern und der Abfragesprache SQL Relationale Datenbanken mit Javaprogrammen verknüpfen und Daten Ein- bzw. Auslesen können. Vielleicht ist Ihnen dabei aufgefallen, dass die serielle Art und Weise des Zugriffs auf Relationale Datenbanken nicht so recht mit der objektorientierten Programmierung harmonisiert. Man spricht in diesem Fall auch von einem Impedance Mismatch.

Über die Jahre hinweg entwickelte sich deshalb eine weitere Technik, die eine objektorientierte Verknüpfung von Datenbanken und Programmiersprachen gestattet und unter dem Namen Object Relational Mapping (ORM) bekannt wurde. Zwar basiert der Zugriff auf die im Hintergrund arbeitende Datenbank dabei weiterhin auf JDBC und SQL. Nun kommt jedoch eine objektorientierte Zugriffsschicht dazu, mit der die Datenbank-Informationen in Javaobjekte überführt und dem Entwickler zur Verfügung gestellt werden.

Abbildung 45.1: Datenbankzugriff mit JDBC und ORM

Statt langwieriger SQL-Zugriffe und Transformation eines ResultSet in Java-Objekte, kann der Entwickler diese nun einfach direkt Laden oder Erzeugen und die Fließbandarbeit dem Persistenz API überlassen.

Das in diesem Kapitel vorgestellte Java Persistenz API (JPA) ist seit dem JDK 5 Bestandteil von Java und vereinigt die Frameworks der Java Data Objects (JDO) und der Entity Beans (EJB). Während erstere für die Java Standard Edition zugeschnitten waren, konnten die leistungsfähigeren EJBs nur in einem J2EE Application Server zur Ausführung gebracht werden. Die neue Technologie vereint nun die Vorteile beider Welten und lässt sich sowohl mit der Standard Edition als auch mit der Enterprise Edition verwenden.

 JDK1.1-6.0 

Da das Java Persistenz API gleich zwei weit entwickelte Technologien vereint, deren Anwendungsgebiet vor allem in großen und komplexen J2EE-Applikationen liegt, gehen die Möglichkeiten dieses Frameworks weit über die Java Standard Edition hinaus. Insofern soll dieses Kapitel vor allem eine neue Technologie vorstellen und den Leser anregen, sich möglicherweise tiefer mit dieser zu beschäftigen. Eine vollständige Einführung würde den Rahmen dieses Buches bei weitem sprengen.

Sollten Sie kein Interesse an einer weiteren Zugriffsschicht für Datenbanken haben, können Sie dieses Kapitel auch überspringen und direkt zu Kapitel 46 übergehen.

 Hinweis 

45.1.1 Bezug und Installation

Das Persistenz API ist noch kein fester Bestandteil der Java Standard Edition, sondern kann von der Homepage http://java.sun.com/javaee/technologies/persistence.jsp heruntergeladen werden. Ähnlich wie mit JDBC liefert Sun mit dem Java Persistenz API dabei zunächst nur einen Satz standardisierter Schnittstellen, die anschließend von einer Implementierung ausgefüllt werden müssen.

Zum Glück gibt es eine Reihe freier OpenSource-Implementierungen. So etwa das in diesem Buch verwendete Hibernate-Framework, das sich auch auf der beiliegenden DVD findet oder von der Homepage http://www.hibernate.org heruntergeladen werden kann. Ähnlich wie beim Datenbank-Treiber ist es hierbei wichtig, dass die Klassen der Implementierung (JAR-Dateien) im Classpath des Programms enthalten und damit dem Java-Programm bekannt sind.

Um die in diesem Kapitel vorgestellten Beispiele auszuführen, können wir einfach die auf der DVD im Ordner install/persistenz hinterlegten JAR-Archive in den Classpath integriert werden. Sollten Sie das Framework stattdessen von der Homepage herunterladen, so benötigen Sie die Pakete Core und Annotations des Hibernate-Projektes. Die Verwendung des Classpath wird unter anderem in Abschnitt 13.4.1 vorgestellt.

Genaugenommen stand das Hibernate-Framework bei der Entwicklung des Persistenz API sogar Pate. Viele Aspekte wurden zunächst in diesem Framework verwirklicht und erst im Nachhinein von Sun adaptiert. So könnte man das Hibernate-Framework sogar ohne den »Aufsatz« der Persistenz API verwenden. Oder die »unter der Haube« des JPA verwendete Implementierung einfach gegen eine andere austauschen.

 Hinweis 

Als Datenbank soll auch in diesem Kapitel die bereits bekannte HSQLDB mit den Tabellen der DirDB dienen, die in Abschnitt 42.3 beschrieben wurde. Doch anstatt die Einträge über Verzeichnisse und Dateien mit SQL auszulesen, werden wir uns in diesem Kapitel entsprechender Javaobjekte bedienen.


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 5. Auflage, Addison Wesley, Version 5.0.1
 <<    <     >    >>   API  © 1998, 2007 Guido Krüger & Thomas Stark, http://www.javabuch.de