Datenbankzugriffe realisieren: Unterschied zwischen den Versionen

Aus FI-Wiki
Die Seite wurde neu angelegt: „== Datenbankzugriffe realisieren == Um auf eine Datenbank zuzugreifen, verbindet sich ein Programm über einen Datenbanktreiber (JDBC) mit dem Datenbankserver, führt SQL-Befehle aus und verarbeitet die zurückgegebenen Ergebnisse. Java nutzt dafür die JDBC-API, die unabhängig vom verwendeten Datenbanksystem funktioniert. === Voraussetzung: JDBC-Treiber === Für jede Datenbank (z. B. MySQL, MariaDB, PostgreSQL, SQLite) wird ein passender JDBC-Treibe…“
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
== Datenbankzugriffe realisieren ==
Um auf eine Datenbank zuzugreifen, verbindet sich ein Programm über einen Datenbanktreiber (JDBC) mit dem Datenbankserver, führt SQL-Befehle aus und verarbeitet die zurückgegebenen Ergebnisse.   
Um auf eine Datenbank zuzugreifen, verbindet sich ein Programm über einen Datenbanktreiber (JDBC) mit dem Datenbankserver, führt SQL-Befehle aus und verarbeitet die zurückgegebenen Ergebnisse.   
Java nutzt dafür die JDBC-API, die unabhängig vom verwendeten Datenbanksystem funktioniert.
Java nutzt dafür die JDBC-API, die unabhängig vom verwendeten Datenbanksystem funktioniert.


=== Voraussetzung: JDBC-Treiber ===
== Voraussetzung: JDBC-Treiber ==
Für jede Datenbank (z. B. MySQL, MariaDB, PostgreSQL, SQLite) wird ein passender JDBC-Treiber benötigt, der dem Projekt hinzugefügt wird.
Für jede Datenbank (z. B. MySQL, MariaDB, PostgreSQL, SQLite) wird ein passender JDBC-Treiber benötigt, der dem Projekt hinzugefügt wird.


Zeile 10: Zeile 8:
* Datei: **mysql-connector-j.jar**
* Datei: **mysql-connector-j.jar**


=== Verbindung herstellen ===
== Verbindung herstellen ==
Eine Verbindung wird über die Klasse '''DriverManager''' aufgebaut.
Eine Verbindung wird über die Klasse '''DriverManager''' aufgebaut.


Zeile 21: Zeile 19:
</syntaxhighlight>
</syntaxhighlight>


=== SQL-Abfragen durchführen (SELECT) ===
== SQL-Abfragen durchführen (SELECT) ==
Mit einem Statement können Daten aus der Datenbank gelesen werden.
Mit einem Statement können Daten aus der Datenbank gelesen werden.


Zeile 33: Zeile 31:
</syntaxhighlight>
</syntaxhighlight>


=== Daten ändern (INSERT, UPDATE, DELETE) ===
== Daten ändern (INSERT, UPDATE, DELETE) ==
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
String sql = "INSERT INTO kunden (name, ort) VALUES ('Anna', 'Berlin')";
String sql = "INSERT INTO kunden (name, ort) VALUES ('Anna', 'Berlin')";
Zeile 39: Zeile 37:
</syntaxhighlight>
</syntaxhighlight>


=== Prepared Statements (empfohlen) ===
== Prepared Statements (empfohlen) ==
Sicher gegen SQL-Injection und schneller bei häufigen Ausführungen.
Sicher gegen SQL-Injection und schneller bei häufigen Ausführungen.


Zeile 50: Zeile 48:
</syntaxhighlight>
</syntaxhighlight>


=== Verbindung schließen ===
== Verbindung schließen ==
Wichtig: Nach jedem Datenbankzugriff Ressourcen freigeben.
Wichtig: Nach jedem Datenbankzugriff Ressourcen freigeben.


Zeile 59: Zeile 57:
</syntaxhighlight>
</syntaxhighlight>


=== Häufige Klassen und ihre Aufgaben ===
== Häufige Klassen und ihre Aufgaben ==
{| class="wikitable" style="width:100%; text-align:center;"
{| class="wikitable" style="width:100%; text-align:center;"
! Klasse !! Bedeutung
! Klasse !! Bedeutung
Zeile 72: Zeile 70:
|}
|}


=== Kurzmerksatz ===
== Kurzmerksatz ==
'''Datenbankzugriffe erfolgen durch Verbindung aufbauen, SQL ausführen und Ergebnisse verarbeiten – in Java über JDBC mit Statements und ResultSets.'''
'''Datenbankzugriffe erfolgen durch Verbindung aufbauen, SQL ausführen und Ergebnisse verarbeiten – in Java über JDBC mit Statements und ResultSets.'''

Aktuelle Version vom 12. Januar 2026, 15:14 Uhr

Um auf eine Datenbank zuzugreifen, verbindet sich ein Programm über einen Datenbanktreiber (JDBC) mit dem Datenbankserver, führt SQL-Befehle aus und verarbeitet die zurückgegebenen Ergebnisse. Java nutzt dafür die JDBC-API, die unabhängig vom verwendeten Datenbanksystem funktioniert.

Voraussetzung: JDBC-Treiber

Für jede Datenbank (z. B. MySQL, MariaDB, PostgreSQL, SQLite) wird ein passender JDBC-Treiber benötigt, der dem Projekt hinzugefügt wird.

Beispiel (MySQL/MariaDB):

  • Datei: **mysql-connector-j.jar**

Verbindung herstellen

Eine Verbindung wird über die Klasse DriverManager aufgebaut.

String url = "jdbc:mysql://localhost:3306/meineDB";
String user = "root";
String pass = "1234";

Connection conn = DriverManager.getConnection(url, user, pass);

SQL-Abfragen durchführen (SELECT)

Mit einem Statement können Daten aus der Datenbank gelesen werden.

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM kunden");

while (rs.next()) {
    System.out.println(rs.getString("name"));
}

Daten ändern (INSERT, UPDATE, DELETE)

String sql = "INSERT INTO kunden (name, ort) VALUES ('Anna', 'Berlin')";
stmt.executeUpdate(sql);

Prepared Statements (empfohlen)

Sicher gegen SQL-Injection und schneller bei häufigen Ausführungen.

String sql = "INSERT INTO kunden (name, ort) VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "Max");
ps.setString(2, "Hamburg");
ps.executeUpdate();

Verbindung schließen

Wichtig: Nach jedem Datenbankzugriff Ressourcen freigeben.

rs.close();
stmt.close();
conn.close();

Häufige Klassen und ihre Aufgaben

Klasse Bedeutung
Connection Verbindung zur Datenbank
Statement einfache SQL-Abfragen
PreparedStatement vorbereitete, sichere SQL-Befehle
ResultSet Ergebnis einer SELECT-Abfrage

Kurzmerksatz

Datenbankzugriffe erfolgen durch Verbindung aufbauen, SQL ausführen und Ergebnisse verarbeiten – in Java über JDBC mit Statements und ResultSets.