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.xmloderapplication.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
Predicatein 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.