Ablauf
In diesem fünftägigen Kurs werdet ihr in die Grundlagen der Kommunikation zwischen einer Applikation und einer Datenbank eingeführt. Der Fokus liegt auf der Verwendung von SQL, verschiedenen Datenbanktypen, der Verknüpfung von Daten und der Verwendung von Annotationen. Zudem wird die Integration von relationalen Datenbanken in ein Spring Boot Projekt behandelt, einschliesslich der Verwendung von ORM (Object-Relational Mapping), Entitäten und Schema-Generierung. An den ersten drei Tagen des Kurses wird an einer einfachen Zeiterfassungsapplikation gearbeitet, wobei Ihr die Persistenzschicht und eine Client-Server-Applikation mit HTTP REST-Schnittstelle implementieren. Es werden zudem Themen wie Beispieldatenladen, Transaktionen, Validierung und Testen behandelt.
Die letzten beiden Tage des Kurses sind der Projektarbeit gewidmet, in der Ihr die erlernten Inhalte von Tag 1, 2 und 3 in einem neuen Projekt anwenden. Zusätzlich werden weiterführende Themen wie die Verwendung von Spring Boot mit MongoDB, Diagrammen zur Unterstützung der Entwicklung von Persistenzschichten, Sicherheit von API-Servern und Implementierung von Authentifizierungsmechanismen behandelt. Dadurch erhaltet Ihr eine umfassende Einführung in die Grundlagen und praktische Anwendung von Datenbankkommunikation und -management in Spring Boot-Projekten.
Planung
Abschnitt betitelt „Planung“Tag 1: Datenbank in Spring Boot verbinden und erste Modelle erstellen
Abschnitt betitelt „Tag 1: Datenbank in Spring Boot verbinden und erste Modelle erstellen“- Ich kann Daten relational in Datenbanken verwalten.
- Ich plane eine Persistenzschicht.
- Ich nutze ein ORM um auf relationale Datenbanken zuzugreifen.
- Ich verstehe die Konzepte “Database first” und “Code first” in Bezug zu einer Persistenzschicht.
| Startzeit | Thema | Inhalt | Typ |
|---|---|---|---|
| 08:15 | Gemeinsamer Start in den Kurs | - Begrüssung - Überblick über den Tag - Erwartungsklärung | Plenum |
| 08:30 | Repetition: Grundlagen Datenbanken | - Kommunikation mit einer DB - SQL, DB-Treiber, Abstraktionen - Relationale & NoSQL DBs - Referentielle Integritaet | Plenum + Diskussion |
| 08:50 | Initialisierung Projekt Zeiterfassung | - Arbeitsumgebung vorbereiten - Lernprojekt für die Tage eins bis drei | Aufgabe |
| 09:30 | ☕ Pause | Erholen & bewegen | — |
| 10:00 | Datenmodellierung mit JPA | - ORM - Annotations - Database First vs. Code First | Einführung + Aufgabe |
| 11:00 | CRUD mit ORM | - Erstellen, lesen, bearbeiten, löschen mit ORM - Transaktionsmanagement | Einführung + Aufgabe |
| 11:45 | 🍽️ Mittagspause | Entspannen & Energie tanken | — |
| 13:00 | Testing | - Integrationstest für Serviceklassen | Einführung + Aufgabe |
| 14:00 | Spring Data Repositories | - Services mit Repositories ersetzen | Demonstration + Aufgabe |
| 14:30 | ☕ Pause | Kurze Pause zur Erholung | — |
| 15:00 | Templates | - Thymeleaf | Aufgabe |
| 15:45 | Controllers | - Spring Controllers beschreiben für CRUD Operationen | Einführung + Aufgabe |
| 16:30 | Rückblick & Fragen | - Zusammenfassung - Offene Punkte klaeren | Plenum |
Tag 2: Beziehungen zwischen Entitäten, Validierung und erste HTTP-Endpunkte
Abschnitt betitelt „Tag 2: Beziehungen zwischen Entitäten, Validierung und erste HTTP-Endpunkte“- Ich validiere die Daten aus dem Formular.
- Ich setze verschiedene Entitäten in Beziehung.
- Ich verstehe Client-Server Architekturen.
- Ich entwickle Schnittstellen zwischen Client und Server.
- Ich wende das REST-Pattern an.
| Startzeit | Thema | Inhalt | Typ |
|---|---|---|---|
| 08:15 | Repetition des ersten Kurstags | - Begruessung - Überblick & Zielsetzung | Plenum |
| 08:30 | Validierung | - Java Validation API - Temporale Constraints - Pattern (Regulaere Ausdruecke) - Laenge | Vortrag + Auftrag |
| 09:30 | ☕ Pause | Erholen & bewegen | — |
| 10:00 | Entitäten in Relation setzen | - One-To-Many - One-To-One - Many-To-Many | Einführung + Auftrag |
| 10:45 | Softwareverteilungsarchitekturen | - API-Begriff - Synchrone vs. Asynchrone APIs - HTTP & REST-Pattern | Vortrag |
| 11:00 | REST-API mit Spring Boot | - Endpunkte GET, POST, DELETE, PUT - Parameter empfangen - Rueckmeldung mit HTTP Status | Auftrag |
| 11:45 | 🍽️ Mittagspause | Entspannen & Energie tanken | — |
| 13:00 | HTTP APIs pruefen mit Tools | - Insomnia - Hoppscotch… | Demonstration + Auftrag |
| 13:45 | JSON Serialisierung & Deserialisierung | - Von/zu JSON - Umgang mit zirkulaerer Serialisierung | Einführung |
| 14:30 | ☕ Pause | Kurze Pause zur Erholung | — |
| 15:00 | Benutzeroberfläche (CSR) | - Bestehendes UI einbinden | Auftrag |
| 16:30 | Rueckblick & Fragen | - Zusammenfassung - Offene Punkte klaeren | Plenum + Diskussion |
- Ich kann Beispieldaten in meine Datenbank laden.
- Ich erweitere meine Datenbankabfragen.
- Ich dokumentiere meine Schnittstellen als OpenAPI.
| Startzeit | Thema | Inhalt | Typ |
|---|---|---|---|
| 08:15 | Repetition & Einstieg in den Tag | - Rückblick auf vorherige Inhalte - Zielsetzung für den Tag | Plenum + Diskussion |
| 08:30 | Beispieldaten laden | - Daten automatisch in Spring Boot Applikation einfügen | Einführung + Auftrag |
| 09:30 | ☕ Pause | Erholen & bewegen | — |
| 10:00 | Anspruchsvollere Abfragen | - Komplexere SQL-Statements - JPQL, Criteria API | Einführung + Aufträge |
| 11:45 | 🍽️ Mittagspause | Entspannen & Energie tanken | — |
| 13:00 | Pagination und Sortieren | - Pageable - JpaRepository | Einführung + Auftrag |
| 14:00 | Open API | Einführung + Auftrag | |
| 14:30 | ☕ Pause | Kurze Pause zur Erholung | — |
| 15:00 | Puffer / Wiederholung / offene Fragen | - Je nach Bedarf: Inhalte vertiefen oder wiederholen | Plenum + Wiederholung + Diskussion |
Tag 4 und 5
Abschnitt betitelt „Tag 4 und 5“Projektarbeit:
Die Inhalte von Tag 1, 2 und 3 werden in einem neuen Projekt trainiert.