Arbeit mit Datenbanken in Java: PostgreSQL und MongoDB

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

Einführung in die Arbeit mit Datenbanken in Java



Moderne Java-Entwicklung kommt selten ohne Interaktion mit Datenspeichersystemen aus. Die Wahl zwischen relationalen (SQL) und nicht-relationalen (NoSQL) Datenbanken ist eine der wichtigsten architektonischen Aufgaben. In diesem Artikel werden wir anhand von PostgreSQL (klassisches relationales DBMS) und MongoDB (dokumentenorientiertes NoSQL) die grundlegenden Ansätze, Best Practices und fertige Codebeispiele durchgehen. Das Material ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich, die ihr Wissen systematisieren möchten.



1. Verbindung und Arbeit mit PostgreSQL in Java



1.1 Einrichtung des JDBC-Treibers



PostgreSQL ist eine der beliebtesten relationalen Datenbanken. Für die Arbeit damit aus Java wird der JDBC-Treiber verwendet. Fügen Sie die Abhängigkeit in pom.xml (Maven) hinzu:



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


Nach dem Hinzufügen des Treibers kann die Verbindung hergestellt werden:



import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class PostgresConnection { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "admin"; 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 (Create, Read, Update, Delete)



Betrachten wir ein Beispiel mit der Tabelle users. Erstellen eines Datensatzes:



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


Daten lesen:



String selectSQL = "SELECT * FROM users WHERE id = ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {    pstmt.setInt(1, 1);    ResultSet rs = pstmt.executeQuery();    while (rs.next()) {        System.out.println(rs.getString("name") + " - " + rs.getString("email"));    }}


Aktualisieren und Löschen erfolgen analog über UPDATE und DELETE mit PreparedStatement. Verwenden Sie immer parametrisierte Abfragen – dies schützt vor SQL-Injection.



1.3 Verwendung eines Verbindungspools (HikariCP)



In der Produktion wird nicht empfohlen, für jede Anfrage eine neue Verbindung zu öffnen. Verwenden Sie einen Verbindungspool. Fügen Sie die Abhängigkeit hinzu:



<dependency>    <groupId>com.zaxxer</groupId>    <artifactId>HikariCP</artifactId>    <version>5.0.1</version></dependency>


Konfiguration:



HikariConfig config = new HikariConfig();config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");config.setUsername("admin");config.setPassword("secret");config.setMaximumPoolSize(10);

HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection();


2. Verbindung und Arbeit mit MongoDB in Java



2.1 Einrichtung des MongoDB Java Treibers



MongoDB speichert Daten im Format JSON-ähnlicher Dokumente. Für die Arbeit wird der offizielle Treiber verwendet. Maven-Abhängigkeit:



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


Verbindung zur lokalen Datenbank:





                
                

Blogs

Buchempfehlungen