Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen JDBC API-Komponenten | JDBC-Übersicht
Java-Datenmanipulation mit Hibernate
course content

Kursinhalt

Java-Datenmanipulation mit Hibernate

Java-Datenmanipulation mit Hibernate

1. JDBC-Übersicht
2. Grundlagen von Hibernate
3. Letzte Feinabstimmungen

book
JDBC API-Komponenten

Komponenten von JDBC

Jede API besteht aus Komponenten, die jeweils für einen Teil der Funktionalität der API verantwortlich sind. Diese Struktur kann auch mit einer Produktionslinie verglichen werden, bei der jeder Mitarbeiter eine Rolle in jedem Prozess hat.

Zum Beispiel können wir die Prozesse logisch in mehrere Unterprozesse unterteilen:

  1. Eine Verbindung zur Datenbank herstellen;
  2. Eine SQL-Abfrage an die Datenbank senden;
  3. Daten empfangen in Form einer Antwort;
  4. Diese Daten richtig interpretieren, indem sie an Java-Code angepasst werden;
  5. Die Daten in eine bequemere Datenstruktur umwandeln (z.B. eine Liste, Sammlung oder Karte).

Für jeden dieser Prozesse gibt es eine entsprechende Komponente, die für die erfolgreiche Ausführung ihrer Anweisungen verantwortlich ist. Lassen Sie uns diese Komponenten im Detail kennenlernen:

  • Connection: Dieses Interface stellt eine Verbindung zur Datenbank her. Sie verwenden es, um Instanzen von Statement oder PreparedStatement zu erstellen;
  • Statement und PreparedStatement: Diese Schnittstellen werden verwendet, um SQL-Abfragen auszuführen. Statement wird für die Ausführung von statischen SQL-Abfragen ohne Parameter verwendet, während PreparedStatement für die Ausführung von SQL-Abfragen mit einem oder mehreren Parametern konzipiert ist;
  • ResultSet: Wenn Sie eine SQL-Abfrage zur Datenabfrage (SELECT) ausführen, speichert das ResultSet die abgerufenen Daten, sodass Sie jede Zeile des Ergebnisses nacheinander verarbeiten können;
  • DriverManager: Diese Klasse verwaltet eine Liste von verfügbaren JDBC-Treibern. Sie wählt den geeigneten Treiber aus, wenn eine Verbindung zur Datenbank hergestellt wird.

Daraus können wir eine Schlussfolgerung darüber ziehen, wie die Verantwortlichkeiten im Code verteilt sind:

  • Die Klassen DriverManager und Connection führen den ersten Prozess durch: Eine Verbindung zur Datenbank herstellen. Der DriverManager wählt den geeigneten Treiber für das spezifische DBMS aus, und die Connection verwendet diesen Treiber, um den Code mit der Datenbank zu verbinden;
  • Statement und PreparedStatement übernehmen den zweiten Prozess, da sie es uns ermöglichen, SQL-Abfragen an die Datenbank zu senden und der Datenbank mitzuteilen, welche Daten wir abrufen möchten;
  • ResultSet übernimmt die verbleibenden Prozesse. Mit Hilfe dieser Klasse und ihrer Methoden können wir die Daten in einem für uns geeigneten Format, wie einer List, erhalten.

So können wir sehen, dass jede der Komponenten ihren Zweck erfüllt. Diese Struktur ist korrekt und hält sich an die SOLID-Prinzipien.

Hinweis

Wir werden die SOLID-Prinzipien in einem separaten Kurs besprechen. Diese Prinzipien definieren gut geschriebenen Anwendungscode, indem sie Richtlinien für das korrekte Schreiben von Code bereitstellen.

JDBC-Interaktion mit einer Datenbank

Lassen Sie uns die Interaktion von JDBC mit einer Datenbank durch Code-Beispiele untersuchen.

Es mag anfangs kompliziert erscheinen, aber im Laufe des Kurses, insbesondere bei der Bearbeitung praktischer Aufgaben, werden Sie ein besseres Verständnis dafür gewinnen, wie es funktioniert und was getan werden muss.

Zunächst einmal sehen wir uns an, wie die Datenbank aussieht, mit der wir arbeiten und zu der wir eine Verbindung herstellen werden. Wir arbeiten mit dem testDatabase-Schema und der employees-Tabelle:

Eine ziemlich einfache Tabelle in der Datenbank. Nun setzen wir uns die Aufgabe, Daten wie id, name und salary aus der ersten Zeile der Tabelle (id=1) abzurufen:

Hinweis

Sie finden Anweisungen zur richtigen Konfiguration von MySQL und zum Abrufen des db_username und db_password hier: Artikel.

Gehen wir es Schritt für Schritt durch:

SchrittAktionBeschreibung
1VariablenerstellungErstellen Sie String-Variablen, um die Datenbank-URL zu speichern (die den Datenbanknamen enthält, was dem SQL-Befehl USE DatabaseName entspricht), den MySQL-Benutzernamen und das Passwort des Benutzers. Details sind aus Datenschutzgründen verborgen.
2VerbindungsherstellungVerwenden Sie das Connection-Interface und die DriverManager-Klasse, um eine Datenbankverbindung herzustellen. Dies beinhaltet das Aufrufen der Methode getConnection() mit der Datenbank-URL, dem Benutzernamen und dem Passwort als Parameter, wodurch eine Verbindung zum Senden von SQL-Abfragen hergestellt wird.
3Vorbereitung der AnweisungVerwenden Sie die Methode prepareStatement() für das Verbindungsobjekt und weisen Sie das resultierende vorbereitete Anweisungsobjekt einer Variablen zu. Dieses Objekt enthält die im Parameter der Methode angegebene SQL-Abfrage.
4Ausführen der AbfrageVerwenden Sie die Methode executeQuery() für das vorbereitete Anweisungsobjekt und weisen Sie die Ergebnisse einem ResultSet-Objekt zu. Dieses Objekt enthält nun die Ergebnisse der ausgeführten SQL-Abfrage.
5DatenabrufÜberprüfen Sie mit der Methode next() auf Daten im resultSet. Wenn Daten vorhanden sind, werden Variablen erstellt und Werte aus der ersten Zeile der Tabelle zugewiesen. Die Methode next() positioniert uns zunächst in der 1. Zeile der Tabelle und wird erneut verwendet, um zu nachfolgenden Zeilen zu wechseln.
6Werte zuweisenWeisen Sie Variablen Werte zu, indem Sie auf Spaltennamen wie id, name und salary verweisen. Werte werden aus der ERSTEN Zeile der Tabelle entnommen, wobei der Vorgang bei Bedarf für zusätzliche Zeilen mit der Methode next() wiederholt wird.

Die Ausgabe sieht folgendermaßen aus:

Wenn wir alle Elemente auf dem Bildschirm anzeigen möchten, müssen wir die if-Bedingung in eine while-Schleife ändern, damit wir jedes Element verarbeiten.

Es wird so aussehen:

Ausgabe:

Fazit

Für jede Interaktion mit einer Datenbank unter Verwendung von JDBC wird derselbe Algorithmus verwendet, wie im obigen Beispiel gezeigt. Wir werden diesen genauen Algorithmus nicht häufig verwenden, da wir Hibernate verwenden werden, um mit der Datenbank zu interagieren, aber es ist wichtig, dass jeder sich dieser Methode der Datenbankinteraktion bereitgestellt durch das JDK bewusst ist.

1. Was ist die Hauptfunktion des Connection-Interfaces in JDBC?

2. Welche der folgenden Aussagen beschreibt das PreparedStatement in JDBC am besten?

3. Was ist die Rolle des DriverManager in JDBC?

4. Welches JDBC-Komponente ist verantwortlich für das Speichern und Verarbeiten von Daten, die mit einer SQL-Abfrage aus einer Datenbank abgerufen wurden?

Was ist die Hauptfunktion des `Connection`-Interfaces in JDBC?

Was ist die Hauptfunktion des Connection-Interfaces in JDBC?

Wählen Sie die richtige Antwort aus

Welche der folgenden Aussagen beschreibt das `PreparedStatement` in JDBC am besten?

Welche der folgenden Aussagen beschreibt das PreparedStatement in JDBC am besten?

Wählen Sie die richtige Antwort aus

Was ist die Rolle des `DriverManager` in JDBC?

Was ist die Rolle des DriverManager in JDBC?

Wählen Sie die richtige Antwort aus

Welches JDBC-Komponente ist verantwortlich für das Speichern und Verarbeiten von Daten, die mit einer SQL-Abfrage aus einer Datenbank abgerufen wurden?

Welches JDBC-Komponente ist verantwortlich für das Speichern und Verarbeiten von Daten, die mit einer SQL-Abfrage aus einer Datenbank abgerufen wurden?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt