Phase 3 – Datenpersistenz und Streams (2–3 Monate)
Grundlegendes SQL
- DDL:
CREATE
,ALTER
. - DML:
SELECT
,INSERT
,UPDATE
,DELETE
. - Joins:
INNER
,LEFT
,RIGHT
. - Keys: Primär- und Fremdschlüssel.
- Normalisierung: 1NF, 2NF, 3NF.
- Beispiel: Erstellen von Tabellen für Produkte und Kategorien.
JDBC und Connection Pool
- Classes:
Connection
,Statement
,PreparedStatement
,ResultSet
. - Verwendung von Connection Pool (HikariCP).
- Best Practices:
try-with-resources
, Umgang mitSQLException
.
Hibernate + JPA in der Praxis
- Annotations:
@Entity
,@Id
,@ManyToOne
,@OneToMany
. - Konfiguration:
persistence.xml
oderapplication.properties
. - CRUD-Operationen mit
EntityManager
. - Einführung in Datenbankmigrationen mit Flyway oder Liquibase.
Einführung in NoSQL-Datenbanken
- Konzepte: Dokumente, Sammlungen, horizontale Skalierbarkeit.
- MongoDB: Einrichtung, CRUD-Operationen mit MongoRepository.
- Spring Data MongoDB: Integration mit Spring Boot.
- Beispiel: Speichern von Systemaktivitätslogs für Produkte in MongoDB.
Streams und Lambda-Ausdrücke
- Operationen:
filter
,map
,sorted
,collect
,forEach
,reduce
. - Beispiel: Produkte nach Preis filtern, nach Name sortieren.
Optional und Functional Interfaces
Optional
:orElse
,ifPresent
,orElseThrow
.- Functional Interfaces:
Function
,Predicate
,Consumer
. - Beispiel: Verwendung von
Predicate
in Streams zum Filtern von Daten.
Fortgeschrittene Collections
- LinkedList: Effizientes Einfügen/Entfernen.
- TreeMap: Geordnete Key-Value-Paare.
- PriorityQueue: Prioritätswarteschlange.
- LinkedHashMap und Deque (Einführung).
Logging (SLF4J/Logback)
- Konfiguration von SLF4J mit Logback.
- Level:
INFO
,DEBUG
,ERROR
. - Beispiel: Protokollieren von Hibernate-Queries.
Transaktionskonzepte (ACID)
- Atomicity, Consistency, Isolation, Durability.
- Transaktionen mit JDBC (
commit
,rollback
) und Hibernate (@Transactional
).
Indizes und Ausführungspläne
- Indexes: Primär, eindeutig, zusammengesetzt.
- Verwendung von EXPLAIN zur Optimierung von Queries.
- Beispiel: Erstellen eines Index für eine häufig durchsuchte Spalte.
Dateimanipulation (optional)
- Lesen und Schreiben mit
Files
,BufferedReader
. - Beispiel: Exportieren eines Produktberichts nach CSV mit Streams.
Datenbanktests (Einführung)
- Integrationstests mit H2 und JUnit.
- Beispiel: Testen von CRUD-Operationen mit Hibernate.
Abschlussprojekt
Produktmanagementsystem
- Datenbank: Product- und Category-Tabellen (1:N-Beziehung).
- Java: Klassen mit JPA (Product
, Category
), CRUD mit Hibernate.
- Optional: Speichern von Änderungslogs für Produkte in MongoDB.
- Optional: Speichern dynamischer Produktattribute (z. B. technische Spezifikationen) in MongoDB.
- Streams: Filtern/Sortieren von Produkten (z. B. nach Preis oder Kategorie).
- Logging: Überwachung von Datenbankoperationen.
- Git: Commit pro Feature (z. B. feature/crud
, feature/streams
).
- Veröffentlichung auf GitHub mit erklärendem README.