Arbeiten mit Datenbanken in Java: PostgreSQL und MongoDB für Anfänger
\n\nIn der modernen Java-Entwicklung ist die Fähigkeit, mit Datenbanken (DB) zu arbeiten, eine der Schlüsselkompetenzen. Unabhängig davon, ob Sie eine Webanwendung, einen mobilen Dienst oder ein Unternehmenssystem erstellen, müssen Sie Daten speichern, abrufen und verarbeiten. In diesem Artikel betrachten wir zwei beliebte Datenbankmanagementsysteme (DBMS): die relationale PostgreSQL und die dokumentenorientierte MongoDB. Sie erfahren, wie Sie sich von einer Java-Anwendung aus mit ihnen verbinden, grundlegende Operationen ausführen und verstehen, in welchen Fällen Sie welche Technologie wählen sollten. Das Material richtet sich an Anfänger, daher sind alle Codebeispiele so einfach wie möglich und mit Kommentaren versehen.
\n\n1. Grundlagen der Arbeit mit PostgreSQL in Java
\n\nPostgreSQL ist ein leistungsstarkes, objektrelationales Open-Source-DBMS. Für die Interaktion mit ihm aus Java wird der JDBC-Treiber (Java Database Connectivity) verwendet. Betrachten wir den schrittweisen Prozess der Verbindung und Ausführung von Abfragen.
\n\n1.1. Treibereinbindung und Konfiguration
\n\nZunächst müssen Sie die Abhängigkeit zu Ihrem Projekt hinzufügen. Wenn Sie Maven verwenden, fügen Sie den folgenden Block in Ihre pom.xml ein:
<dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <version>42.7.1</version>\n</dependency>\n\nFür Gradle fügen Sie die Zeile in Ihre build.gradle ein:
implementation 'org.postgresql:postgresql:42.7.1'\n\n1.2. Erstellen einer Tabelle und Einfügen von Daten
\n\nAngenommen, wir haben eine Datenbank testdb mit dem Benutzer user und dem Passwort pass. Erstellen wir eine einfache Tabelle users und fügen einige Datensätze hinzu.
import java.sql.*;\n\npublic class PostgresExample {\n public static void main(String[] args) {\n String url = "jdbc:postgresql://localhost:5432/testdb";\n String user = "user";\n String password = "pass";\n\n try (Connection conn = DriverManager.getConnection(url, user, password);\n Statement stmt = conn.createStatement()) {\n\n // Tabelle erstellen\n String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" +\n "id SERIAL PRIMARY KEY, " +\n "name VARCHAR(100) NOT NULL, " +\n "email VARCHAR(100) UNIQUE)";\n stmt.executeUpdate(createTableSQL);\n System.out.println("Tabelle erstellt oder bereits vorhanden.");\n\n // Daten einfügen\n String insertSQL = "INSERT INTO users (name, email) VALUES " +\n "('Ivan Petrov', 'ivan@example.com'), " +\n "('Maria Smirnova', 'maria@example.com')";\n int rowsInserted = stmt.executeUpdate(insertSQL);\n System.out.println("Zeilen hinzugefügt: " + rowsInserted);\n\n } catch (SQLException e) {\n e.printStackTrace();\n }\n }\n}\n\n1.3. Daten lesen mit PreparedStatement
\n\nFür die sichere Arbeit mit Benutzereingaben verwenden Sie PreparedStatement. Dies verhindert SQL-Injection.
String selectSQL = "SELECT * FROM users WHERE name LIKE ?";\ntry (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {\n pstmt.setString(1, "%Ivan%");\n ResultSet rs = pstmt.executeQuery();\n\n while (rs.next()) {\n int id = rs.getInt("id");\n String name = rs.getString("name");\n String email = rs.getString("email");\n System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);\n }\n} catch (SQLException e) {\n e.printStackTrace();\n}\n\nWie Sie sehen, ist die Arbeit mit PostgreSQL in Java standardisiert und gut dokumentiert