O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Der Java-Profi: Persistenzlösungen und REST-Services

Book Description

• Erweiterung des Java-Profis für Datenbankprogrammierung• Erfolgsautor Michael Inden• Professionelle Entwicklung von Datenbankanwendungen

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. Vorwort
  6. Kapitel 1: Einstieg in XML und JSON
    1. 1.1 Basiswissen XML
      1. 1.1.1 Bestandteile und Aufbau eines XML-Dokuments
      2. 1.1.2 Validierung eines XML-Dokuments
    2. 1.2 XML-Verarbeitung mit JAXP
      1. 1.2.1 Einfaches Parsing mit SAX
      2. 1.2.2 Komplexere Parsing-Aufgaben mit SAX
      3. 1.2.3 Parsing mit DOM
      4. 1.2.4 Verarbeiten und Speichern mit DOM
      5. 1.2.5 StAX als Alternative zu SAX oder DOM?
      6. 1.2.6 SAX, StAX oder DOM?
      7. 1.2.7 XPath im Überblick
      8. 1.2.8 XSLT im Überblick
      9. 1.2.9 XMLEncoder und XMLDecoder im Überblick
    3. 1.3 XML-Verarbeitung mit JAXB
      1. 1.3.1 Schritt 1: Passende Java-Klassen erstellen
      2. 1.3.2 Schritt 2: Marshalling und Unmarshalling
      3. 1.3.3 JAXB: Stärken und Schwächen
    4. 1.4 JAXB und StAX in Kombination
      1. 1.4.1 Rekonstruktion von Objekten mit JAXB und StAX
      2. 1.4.2 Vergleich zu SAX, DOM und JAXB
      3. 1.4.3 On-the-Fly-Modifikation von Objekten
    5. 1.5 JSON – das bessere XML?
      1. 1.5.1 Crashkurs JSON
      2. 1.5.2 JSON mit Java verarbeiten
      3. 1.5.3 JSON vs. XML
    6. 1.6 Weiterführende Literatur
  7. Kapitel 2: Einführung in Persistenz und relationale Datenbanken
    1. 2.1 Grundlagen zur Persistenz
      1. 2.1.1 Beschränkungen einfacher Persistenzlösungen
      2. 2.1.2 Modelle zur Persistierung von Objekten
      3. 2.1.3 Speicherung von Daten in relationalen Datenbanken
    2. 2.2 Abbildung zwischen Objekt- und Datenbankmodell
      1. 2.2.1 Abbildung von Referenzen
      2. 2.2.2 Abbildung von Assoziationen und Aggregationen
      3. 2.2.3 Abbildung von Vererbung
    3. 2.3 Das Datenbanksystem HSQLDB im Kurzüberblick
    4. 2.4 SQL-Grundlagen
      1. 2.4.1 DDL – Definition von Tabellen
      2. 2.4.2 DQL – Datenabfrage
      3. 2.4.3 DML – Datenmanipulation
    5. 2.5 Ausfallsicherheit und Replikation
    6. 2.6 Weiterführende Literatur
  8. Kapitel 3: Persistenz mit JDBC
    1. 3.1 Datenbankzugriffe per JDBC
      1. 3.1.1 Schritte zur Abfrage von Datenbanken
      2. 3.1.2 Besonderheiten von ResultSet
      3. 3.1.3 Abfrage von Metadaten
      4. 3.1.4 Probleme bei der Ausführung von Statements
      5. 3.1.5 Das Interface PreparedStatement
      6. 3.1.6 Transaktionen in JDBC
    2. 3.2 Grundlagen zum ORM mit JDBC
      1. 3.2.1 Rekonstruktion von Objekten
      2. 3.2.2 Zugriffe mit einem Data Access Object (DAO)
    3. 3.3 Weiterführende Literatur
  9. Kapitel 4: Persistenz mit JPA
    1. 4.1 Grundlagen zum ORM und zum JPA
    2. 4.2 Einführung in JPA an einem Beispiel
      1. 4.2.1 Definition persistenter Klassen
      2. 4.2.2 Die Konfigurationsdatei persistence.xml
      3. 4.2.3 Datenbankzugriffe per JPA in Java SE
      4. 4.2.4 Lebenszyklus von Entitäten (Entity Lifecycle)
      5. 4.2.5 Datenbankmodell
      6. 4.2.6 Vorteile der konfigurativen Persistenz
    3. 4.3 JPQL im Überblick
      1. 4.3.1 Syntax von JPQL
      2. 4.3.2 Besondere Arten von Queries
      3. 4.3.3 Abfragen mit JPQL ausführen
      4. 4.3.4 Typsichere Abfragen und das Criteria API
    4. 4.4 DAO-Funktionalität mit JPA
      1. 4.4.1 CRUD-Funktionalität
      2. 4.4.2 Einsatz des DAO
    5. 4.5 Fortgeschritteneres ORM mit JPA
      1. 4.5.1 Abbildung von Assoziationen
      2. 4.5.2 Abbildung von Vererbungshierarchien
      3. 4.5.3 Verarbeitung der Typen aus JSR-310: Date and Time
      4. 4.5.4 Bean Validation im Einsatz
    6. 4.6 Transaktionen und Locking
      1. 4.6.1 Isolationslevel und Effekte
      2. 4.6.2 Problemkontext
      3. 4.6.3 Optimistic Locking
    7. 4.7 Caching in JPA
    8. 4.8 Fazit
    9. 4.9 Weiterführende Literatur
  10. Kapitel 5: NoSQL-Datenbanken am Beispiel von MongoDB
    1. 5.1 Einführung und Überblick
    2. 5.2 Einführung MongoDB
      1. 5.2.1 Analogie von CRUD (RDBMS) zu IFUR (MongoDB)
      2. 5.2.2 Komplexere Abfragen
      3. 5.2.3 MongoDB und Transaktionen
    3. 5.3 Ausfallsicherheit und Skalierbarkeit
      1. 5.3.1 Hintergrundwissen: Formen der Skalierung
      2. 5.3.2 Ausfallsicherheit und Replica Sets
      3. 5.3.3 Skalierung und Sharding
      4. 5.3.4 Anmerkungen zu Replica Sets und Sharding
    4. 5.4 MongoDB aus Java ansprechen
      1. 5.4.1 Einführendes Beispiel
      2. 5.4.2 Daten einfügen und auslesen
      3. 5.4.3 Verarbeitung komplexerer Daten
      4. 5.4.4 Einfaches JSON-basiertes Object/Document Mapping
      5. 5.4.5 Object/Document Mapping mit Spring Data MongoDB
    5. 5.5 Fazit
    6. 5.6 Weiterführende Literatur
  11. Kapitel 6: REST-Services mit JAX-RS und Jersey
    1. 6.1 REST im Kurzüberblick
      1. 6.1.1 Einführendes Beispiel eines REST-Service
      2. 6.1.2 Zugriffe auf REST-Services
      3. 6.1.3 Unterstützung verschiedener Formate
      4. 6.1.4 Zugriffe auf REST-Services am Beispiel von MongoDB
    2. 6.2 Ein REST-Service mit CRUD-Funktionalität
      1. 6.2.1 MIME-Types und unterschiedliche Datenformate
      2. 6.2.2 HTTP-Kommandos und CRUD-Funktionalität
    3. 6.3 Tipps zum Design von REST-Interfaces
      1. 6.3.1 Varianten der Rückgabe und Error Handling bei REST
      2. 6.3.2 Wertübergabe als @QueryParam oder @PathParam
      3. 6.3.3 Paging bei GET
    4. 6.4 Fortgeschrittene Themen
      1. 6.4.1 Einsatz von Request- und Response-Filtern
      2. 6.4.2 Security im Kontext von REST
      3. 6.4.3 Testen mit restfuse
    5. 6.5 Fazit
    6. 6.6 Weiterführende Literatur
  12. Kapitel 7: Entwurf einer Beispielapplikation
    1. 7.1 Iteration 0: Ausgangsbasis
    2. 7.2 Iteration 1: Zentrale Verwaltung von Highscores
    3. 7.3 Iteration 2: Verwaltung von XML
    4. 7.4 Iteration 3: Bereitstellen als REST-Service
    5. 7.5 Iteration 4: Web-GUI mit HTML und JavaScript
    6. 7.6 Iteration 5: Protokollierung von Aktionen mit MongoDB
    7. 7.7 Fazit zum Abschluss der Iterationen
  13. Anhang
    1. A Einführung Gradle
      1. A.1 Projektstruktur für Maven und Gradle
      2. A.2 Builds mit Gradle
    2. B Client-Server-Kommunikation und HTTP im Überblick
      1. B.1 Client-Server-Kommunikation
      2. B.2 Basiswissen HTTP
    3. C Grundlagenwissen HTML
      1. C.1 Basiswissen HTML
        1. C.1.1 HTML am Beispiel
        2. C.1.2 Interaktivität und Formulare
    4. D Wissenswertes zu JavaScript
      1. D.1 Grundlagen zur Sprache
      2. D.2 Modifikation von HTML
      3. D.3 JSON-Verarbeitung
      4. D.4 REST-Services ansprechen
    5. Literaturverzeichnis
  14. Index
  15. Fußnoten
  16. Rezensieren & gewinnen!