Arbeit mit Datenbanken in Java: PostgreSQL und MongoDB in der Praxis

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum sollte ein Java-Entwickler PostgreSQL und MongoDB kennen?

Moderne Java-Entwicklung kommt selten ohne die Interaktion mit Datenbanken aus. Die beiden beliebtesten Systeme – die relationale PostgreSQL und die dokumentenorientierte MongoDB – decken 90% der Aufgaben von Enterprise-Anwendungen ab. PostgreSQL ist ideal für strenge Schemata und Transaktionssysteme, während MongoDB sich für flexible Datenstrukturen und hohe Schreiblasten eignet.

In diesem Artikel werden wir praktische Beispiele für die Verbindung beider Datenbanken aus Java durchgehen, grundlegende CRUD-Operationen ausführen und die Ansätze vergleichen. Das Material ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich, die ihr Wissen auffrischen möchten.



1. PostgreSQL in Java: Klassiker der relationalen Datenbanken

1.1. Verbindung und Konfiguration

Für die Arbeit mit PostgreSQL in Java wird der Treiber org.postgresql:postgresql verwendet. Fügen Sie die Abhängigkeit in pom.xml (Maven) hinzu:

<dependency>    <groupId>org.postgresql</groupId>    <artifactId>postgresql</artifactId>    <version>42.7.1</version></dependency>

Die Verbindung über JDBC sieht so aus:

String url = "jdbc:postgresql://localhost:5432/mydb";String user = "postgres";String password = "secret";

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("Verbindung zu PostgreSQL hergestellt!");} catch (SQLException e) { e.printStackTrace();}


1.2. CRUD-Operationen in der Praxis

Erstellen wir eine Tabelle users und führen grundlegende Operationen aus:

// Tabelle erstellenString createSQL = """    CREATE TABLE IF NOT EXISTS users (        id SERIAL PRIMARY KEY,        name VARCHAR(100),        email VARCHAR(100) UNIQUE,        age INTEGER    )""";

try (Statement stmt = conn.createStatement()) { stmt.execute(createSQL); System.out.println("Tabelle erstellt");}

// INSERTString insertSQL = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "Ivan Petrov"); pstmt.setString(2, "ivan@example.com"); pstmt.setInt(3, 30); pstmt.executeUpdate();}

// SELECTString selectSQL = "SELECT * FROM users WHERE age > ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) { pstmt.setInt(1, 25); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.printf("ID: %d, Name: %s, Email: %s%n", rs.getInt("id"), rs.getString("name"), rs.getString("email")); }}

Wichtig: Verwenden Sie immer PreparedStatement zum Schutz vor SQL-Injection.



2. MongoDB in Java: Flexibilität des Dokumentenmodells

2.1. Verbindung über MongoDB Sync Driver

Fügen Sie in pom.xml hinzu:

<dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongodb-driver-sync</artifactId>    <version>4.11.1</version></dependency>

Verbindung zur lokalen MongoDB:

import com.mongodb.client.MongoClients;import com.mongodb.client.MongoClient;import com.mongodb.client.MongoDatabase;

MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");MongoDatabase database = mongoClient.getDatabase("mydb");System.out.println("Verbindung zu MongoDB hergestellt");


2.2. CRUD-Operationen mit Dokumenten

Arbeiten mit der Sammlung users:

import com.mongodb.client.MongoCollection;import org.bson.Document;import static com.mongodb.client.model.Filters.*;

MongoCollection<Document> collection = database.getCollection("users");

// CREATE — Dokument einfügenDocument user = new Document("name", "Anna Smith")

Blogs

Buchempfehlungen