: Michael Inden
: Der Java-Profi: Persistenzlösungen und REST-Services Datenaustauschformate, Datenbankentwicklung und verteilte Anwendungen
: dpunkt
: 9783864919619
: 1
: CHF 24.70
:
: Programmiersprachen
: German
: 404
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF/ePUB
Wenn Sie bereits komplexe Java-Applikationen für den Desktop-Bereich schreiben, können Sie sich an Unternehmensanwendungen als weitere Herausforderung wagen. Dabei kommen Sie früher oder später mit Datenbanken, den Datenformaten XML oder JSON und auch mit verteilten Applikationen in Berührung. Das notwendige Wissen für einen effizienten Einstieg erlangen Sie in diesem Buch. Michael Inden macht Sie zunächst mit den Grundlagen der professionellen Erstellung von Unternehmensanwendungen vertraut und vermittelt Ihnen substanzielle Kenntnisse zum Informationsaustausch basierend auf XML oder JSON. Darüber hinaus bietet er eine fundierte Einführung in die Persistenz mit relationalen Datenbanken mithilfe von SQL, JDBC und JPA. Schließlich thematisiert der Autor die Datenverarbeitung mit den immer populärer werdenden NoSQL-Datenbanken anhand von MongoDB. Im Praxisalltag kommt oftmals der Wunsch auf, Funktionalität auch im Netzwerk bereitzustellen. Hierfür existieren vielfältige Technologien. Das Buch fokussiert auf die populären 'RESTful Webservices' und zeigt Ihnen exemplarisch die Entwicklung von einfachen Client-Server-Applikationen mithilfe von JAX-RS.

Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler für JDK 6. Nach seinem Studium in Oldenburg war er lange Zeit als Softwareentwickler und -architekt bei verschiedenen internationalen Firmen tätig. Dabei hat er über 15 Jahre Erfahrung beim Entwurf objektorientierter Softwaresysteme gesammelt, an diversen Fortbildungen und an mehreren Java-One-Konferenzen in San Francisco teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen, grafischen Oberflächen sowie dem Coaching von Kollegen.

Vorwort


<
Inhaltsverzeichnis5
Vorwort9
Motivation9
Wer sollte dieses Buch lesen?10
Was soll mithilfe dieses Buchs gelernt werden?10
Sourcecode und ausführbare Programme11
Aufbau dieses Buchs12
Konventionen13
Danksagung15
Anregungen und Kritik16
1 Einstieg in XML und JSON17
1.1 Basiswissen XML18
1.1.1 Bestandteile und Aufbau eines XML-Dokuments21
1.1.2 Validierung eines XML-Dokuments26
1.2 XML-Verarbeitung mit JAXP30
1.2.1 Einfaches Parsing mit SAX31
1.2.2 Komplexere Parsing-Aufgaben mit SAX34
1.2.3 Parsing mit DOM37
1.2.4 Verarbeiten und Speichern mit DOM41
1.2.5 StAX als Alternative zu SAX oder DOM?45
1.2.6 SAX, StAX oder DOM?52
1.2.7 XPath im Überblick53
1.2.8 XSLT im Überblick58
1.2.9 XMLEncoder und XMLDecoder im Überblick62
1.3 XML-Verarbeitung mit JAXB65
1.3.1 Schritt 1: Passende Java-Klassen erstellen66
1.3.2 Schritt 2: Marshalling und Unmarshalling70
1.3.3 JAXB: Stärken und Schwächen74
1.4 JAXB und StAX in Kombination75
1.4.1 Rekonstruktion von Objekten mit JAXB und StAX75
1.4.2 Vergleich zu SAX, DOM und JAXB78
1.4.3 On-the-Fly-Modifikation von Objekten81
1.5 JSON – das bessere XML?83
1.5.1 Crashkurs JSON83
1.5.2 JSON mit Java verarbeiten84
1.5.3 JSON vs. XML89
1.6 Weiterführende Literatur90
2 Einführung in Persistenz und relationale Datenbanken91
2.1 Grundlagen zur Persistenz92
2.1.1 Beschränkungen einfacher Persistenzlösungen92
2.1.2 Modelle zur Persistierung von Objekten94
2.1.3 Speicherung von Daten in relationalen Datenbanken95
2.2 Abbildung zwischen Objekt- und Datenbankmodell102
2.2.1 Abbildung von Referenzen104
2.2.2 Abbildung von Assoziationen und Aggregationen107
2.2.3 Abbildung von Vererbung110
2.3 Das Datenbanksystem HSQLDB im Kurzüberblick114
2.4 SQL-Grundlagen116
2.4.1 DDL – Definition von Tabellen117
2.4.2 DQL – Datenabfrage123
2.4.3 DML – Datenmanipulation127
2.5 Ausfallsicherheit und Replikation130
2.6 Weiterführende Literatur131
3 Persistenz mit JDBC133
3.1 Datenbankzugriffe per JDBC133
3.1.1 Schritte zur Abfrage von Datenbanken136
3.1.2 Besonderheiten von ResultSet144
3.1.3 Abfrage von Metadaten150
3.1.4 Probleme bei der Ausführung von Statements158
3.1.5 Das Interface PreparedStatement161
3.1.6 Transaktionen in JDBC164
3.2 Grundlagen zum ORM mit JDBC167
3.2.1 Rekonstruktion von Objekten167
3.2.2 Zugriffe mit einem Data Access Object (DAO)172
3.3 Weiterführende Literatur175
4 Persistenz mit JPA177
4.1 Grundlagen zum ORM und zum JPA178
4.2 Einführung in JPA an einem Beispiel180
4.2.1 Definition persistenter Klassen180
4.2.2 Die Konfigurationsdatei persistence.xml183
4.2.3 Datenbankzugriffe per JPA in Java SE184
4.2.4 Lebenszyklus von Entitäten (Entity Lifecycle)189
4.2.5 Datenbankmodell191
4.2.6 Vorteile der konfigurativen Persistenz193
4.3 JPQL im Überblick194
4.3.1 Syntax von JPQL194
4.3.2 Besondere Arten von Queries197
4.3.3 Abfragen mit JPQL ausführen198
4.3.4 Typsichere Abfragen und das Criteria API204
4.4 DAO-Funktionalität mit JPA207
4.4.1 CRUD-Funktionalität207
4.4.2 Einsatz des DAO210
4.5 Fortgeschritteneres ORM mit JPA212
4.5.1 Abbildung von Assoziationen213
4.5.2 Abbildung von Vererbungshierarchien216
4.5.3 Verarbeitung der Typen aus JSR-310: Date and Time220
4.5.4 Bean Validation im Einsatz223
4.6 Transaktionen und Locking227
4.6.1 Isolationslevel und Effekte227
4.6.2 Problemkontext228
4.6.3 Optimistic Locking229
4.7 Caching in JPA232
4.8 Fazit234
4.9 Weiterführende Literatur234
5 NoSQL-Datenbanken am Beispiel von MongoDB235
5.1 Einführung und Überblick235
5.2 Einführung MongoDB241
5.2.1 Analogie von CRUD (RDBMS) zu IFUR (MongoDB)243
5.2.2 Komplexere Abfragen248
5.2.3 MongoDB und Transaktionen251
5.3 Ausfallsicherheit und Skalierbarkeit252