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
Lesen Sie auch
Profilierung von Java-Code: Engpässe für Anfänger finden
Arbeiten mit JSON in C++: Parsing und Serialisierung für Anfänger
NullReferenceException in C#: So finden und beheben Sie den Fehler
PHP-Warteschlangen und Hintergrundaufgaben: Website-Beschleunigung
Bereitstellung von C++ auf Kubernetes: Ein grundlegender Leitfaden für Einsteiger