| Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 6. Auflage |
| << | < | > | >> | API | Kapitel 45 - Objektorientierte Persistenz |
In Kapitel 42 haben wir gesehen, wie wir mit Hilfe von Datenbanktreibern und der Abfragesprache SQL Relationale Datenbanken mit Java-Programmen 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. Zusätzlich kommt nun jedoch eine objektorientierte Zugriffsschicht dazu, mit der die Datenbankergebnisse zuerst in Java-Objekte überführt und diese anschließend 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 über einen Konstruktor 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 sind, können die leistungsfähigeren EJBs nur in einem Java EE 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. |
|
![]() |
![]() |
Da das Java Persistenz API gleich zwei weit entwickelte Technologien vereint, deren Anwendungsgebiet vor allem in großen und komplexen Java-EE-Anwendungen liegt, gehen die Möglichkeiten des Frameworks weit über die Java Standard Edition hinaus. In einigen Aspekten unterscheidet sich die Verwendung des Java Persistenz API im Zusammenhang mit der Java Standard Edition sogar vom Einsatz in einem Java EE Application Server. Das vorliegende Kapitel stellt die JPA aus Sicht der Java Standard Edition vor und verweist an den entsprechenden Stellen auf Unterschiede zur Java Enterprise Edition. |
|
![]() |
Das Persistenz API ist noch kein fester Bestandteil der Java Standard Edition, sondern kann als eigenständige Technologie von der Homepage http://java.sun.com/javaee/technologies/persistence.jsp heruntergeladen werden. Ähnlich wie mit JDBC liefert Sun mit dem Java Persistenz API 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, wie etwa das in diesem Buch verwendete Hibernate-Framework. Das Hibernate-Framework besteht aus einer Reihe von JAR-Archiven, die Sie auf der beiliegenden DVD finden oder von der Homepage http://www.hibernate.org herunterladen können.
Um die in diesem Kapitel vorgestellten Beispiele ausführen zu können, genügt es die auf der beiliegenden DVD hinterlegten JAR-Archive in den Classpath zu integrieren. Die Bibliotheken für die Hibernate-Implementierung und die HSQLDB finden Sie im Ordner install/persistenz. Wenn Sie das Hibernate-Framework stattdessen lieber von der Homepage herunterladen wollen, benötigen Sie die Pakete Core und Annotations. 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. |
|
![]() |
Als Datenbank soll auch in diesem Kapitel die bereits bekannte HSQLDB mit den Tabellen der DirDB dienen, die in Abschnitt 42.3 beschrieben wird. Doch anstatt die Einträge der Verzeichnisse und Dateien mit SQL auszulesen, werden wir uns in diesem Kapitel entsprechender Java-Objekte bedienen.
Der erste Teil dieses Kapitels führt Sie grundsätzlich in die Verwendung des Java Persistenz API ein und zeigt Ihnen, wie Sie einfache Datenbanktabellen mit Java Beans modellieren. Nach diesen Grundlagen widmet sich der zweite Teil des Kapitels ab Abschnitt 45.4 den relationalen Verknüpfungen von Datensätzen und zeigt Ihnen, wie Sie auch diese mit Java-Strukturen abbilden können.
| Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 6. Auflage, Addison Wesley, Version 6.0 |
| << | < | > | >> | API | © 1998, 2009 Guido Krüger & Thomas Stark, http://www.javabuch.de |