diff options
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100288.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100288.html | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100288.html b/Master/Reference Architectures and Patterns/hjp5/html/k100288.html new file mode 100644 index 0000000..07daaa4 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100288.html @@ -0,0 +1,221 @@ +<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100287.html;106,k100287.html;107,k100289.html;108,k100292.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100287.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100287.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100289.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100292.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 45 - Objektorientierte Persistenz
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id045001"></a>
+<h2>45.1 Einleitung </h2>
+<hr>
+<ul>
+<li><a href="k100288.html#sectlevel2id045001">45.1 Einleitung</a>
+<ul>
+<li><a href="k100288.html#sectlevel3id045001001">45.1.1 Bezug und Installation</a>
+</ul>
+</ul>
+<hr>
+
+<p>
+In <a href="k100265.html#kapiteljdbc">Kapitel 42</a> 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 <a name="ixa103331"><i>Impedance Mismatch</i></a>.
+
+<p>
+Über die Jahre hinweg entwickelte sich deshalb eine weitere Technik,
+die eine objektorientierte Verknüpfung von Datenbanken und Programmiersprachen
+gestattet und unter dem Namen <a name="ixa103332"><i>Object Relational Mapping</i></a>
+(<a name="ixa103333"><i>ORM</i></a>) 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.
+<p>
+<a name="persistenceimg"></a>
+<img src="images/Persistence.gif">
+<p>
+
+<p><i>
+Abbildung 45.1: Datenbankzugriff mit JDBC und ORM</i></p>
+
+<p>
+Statt langwieriger SQL-Zugriffe und Transformation eines <font color="#000077"><tt>ResultSet</tt></font>
+in Java-Objekte, kann der Entwickler diese nun einfach direkt Laden
+oder Erzeugen und die Fließbandarbeit dem Persistenz API überlassen.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Das in diesem Kapitel vorgestellte Java Persistenz API (JPA) ist seit
+dem JDK 5 Bestandteil von Java und vereinigt die Frameworks der <a name="ixa103334"><i>Java
+Data Objects</i></a> (JDO) und der <a name="ixa103335"><i>Entity Bean</i></a>s
+(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.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#FF9900">
+<tr>
+<td><font color="#FFFFFF"> JDK1.1-6.0 </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+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.
+
+<p>
+Sollten Sie kein Interesse an einer weiteren Zugriffsschicht für
+Datenbanken haben, können Sie dieses Kapitel auch überspringen
+und direkt zu <a href="k100292.html#kapitelnetzwerkprogrammierung">Kapitel 46</a>
+übergehen. </td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id045001001"></a>
+<h3>45.1.1 Bezug und Installation </h3>
+
+<p>
+Das Persistenz API ist noch kein fester Bestandteil der Java Standard
+Edition, sondern kann von der Homepage <a href="http://java.sun.com/javaee/technologies/persistence.jsp">http://java.sun.com/javaee/technologies/persistence.jsp</a>
+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.
+
+<p>
+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 <a href="http://www.hibernate.org">http://www.hibernate.org</a>
+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.
+
+<p>
+Um die in diesem Kapitel vorgestellten Beispiele auszuführen,
+können wir einfach die auf der DVD im Ordner <font color="#660099">install/persistenz</font>
+hinterlegten JAR-Archive in den Classpath integriert werden. Sollten
+Sie das Framework stattdessen von der Homepage herunterladen, so benötigen
+Sie die Pakete <i>Core</i> und <i>Annotations</i> des Hibernate-Projektes.
+Die Verwendung des Classpath wird unter anderem in <a href="k100087.html#sectionclasspath">Abschnitt 13.4.1</a>
+vorgestellt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+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.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+<p>
+Als Datenbank soll auch in diesem Kapitel die bereits bekannte HSQLDB
+mit den Tabellen der <i>DirDB</i> dienen, die in <a href="k100268.html#dirdb">Abschnitt 42.3</a>
+beschrieben wurde. Doch anstatt die Einträge über Verzeichnisse
+und Dateien mit SQL auszulesen, werden wir uns in diesem Kapitel entsprechender
+Javaobjekte bedienen.
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100287.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100287.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100289.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100292.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
