Talk

Datenbankzentrische Anwendungen mit Spring Boot und jOOQ

In diesem Vortrag wird eine Variante datenbankzentrischer Anwendungen mit einer modernen Architektur vorgestellt, die sowohl in einer klassischen Verteilung als auch “cloud native” genutzt werden kann, und dabei eine sehr direkte Interaktion mit Datenbanken erlaubt.

jOOQ ist eine von vielen Möglichkeiten, Datenbankzugriff in Java zu realisieren, aber weder eine Objektrelationale Abbildung (ORM) noch “Plain SQL”, sondern eine typsichere Umsetzung aktueller SQL Standards in Java. jOOQ “schützt” den Entwickler nicht vor SQL Code, sondern unterstützt ihn dabei, typsicher Abfragen in Java zu schreiben.

Spring Boot setzt seit mehreren Jahren neue Standards im Bereich der Anwendungsentwicklung mit dem Spring Framework. Waren vor wenigen Jahren noch aufwändige XML Konfigurationen notwendig, ersetzen heute “opinionated defaults” manuelle Konfiguration. Eine vollständige Spring Boot Anwendung passt mittlerweile in einen Tweet.

Der Autor setzt die Kombination beider Technologien erfolgreich zur Migration einer bestehenden, komplexen Oracle Forms Client Server Anwendung mit zahlreichen Tabellen und PL/SQL Stored Procedures hinzu einer modernen Architektur ein. Das Projekt profitiert sehr davon, die Datenbankstrukturen nicht in einen ORM “zu zwängen”.

Der Vortrag demonstriert, wie Spring Boot genutzt wird, um den Kontext für jOOQ vorzubereiten (Datenbankverbindung, Transaktionen etc.) und anschließend fortgeschrittene, analytische Abfragen als HTTP apis zu veröffentlichen.

Auf dem Weg dorthin wird ebenfalls über Datenbankmigrationen gesprochen und wie auch an dieser Stelle die Magie von Spring Boot eingesetzt werden kann, um Entwicklungs-, Test- und Produktivdatenbanken synchron zu halten.

Kann Domain Driven Design von spezialisierten SQL-Abfragen profitieren? Die Gefahr ist groß, JPA-Entities mit Entitäten aus Evans’ DDD Buch zu verwechseln und zu meinen, man ist fertig mit DDD. Vielleicht ist es eine gute Idee, auch für DDD Entitäten und Value-Objekte spezialisierte Abfragen zu verwenden.

Date
2017-11-15
Time
18:30 - 20:00
Conference / Event
Java Usergroup Münster, November 2017
Venue
LVM, 3.01.08 Konferenzraum II Links, Münster
  • Slide 1
    1/50
  • Slide 2
    2/50
  • Slide 3
    3/50
  • Slide 4
    4/50
  • Slide 5
    5/50
  • Slide 6
    6/50
  • Slide 7
    7/50
  • Slide 8
    8/50
  • Slide 9
    9/50
  • Slide 10
    10/50
  • Slide 11
    11/50
  • Slide 12
    12/50
  • Slide 13
    13/50
  • Slide 14
    14/50
  • Slide 15
    15/50
  • Slide 16
    16/50
  • Slide 17
    17/50
  • Slide 18
    18/50
  • Slide 19
    19/50
  • Slide 20
    20/50
  • Slide 21
    21/50
  • Slide 22
    22/50
  • Slide 23
    23/50
  • Slide 24
    24/50
  • Slide 25
    25/50
  • Slide 26
    26/50
  • Slide 27
    27/50
  • Slide 28
    28/50
  • Slide 29
    29/50
  • Slide 30
    30/50
  • Slide 31
    31/50
  • Slide 32
    32/50
  • Slide 33
    33/50
  • Slide 34
    34/50
  • Slide 35
    35/50
  • Slide 36
    36/50
  • Slide 37
    37/50
  • Slide 38
    38/50
  • Slide 39
    39/50
  • Slide 40
    40/50
  • Slide 41
    41/50
  • Slide 42
    42/50
  • Slide 43
    43/50
  • Slide 44
    44/50
  • Slide 45
    45/50
  • Slide 46
    46/50
  • Slide 47
    47/50
  • Slide 48
    48/50
  • Slide 49
    49/50
  • Slide 50
    50/50

Swipe for more

Scroll or use your arrow keys for more

Scroll for more

Use your arrow keys for more

Download Slides