Java

Datenbanken
Datenbankzugriff in Java – Übung

In diesem Beitrag zeigen wir dir anhand eines praktischen Beispiels wie man Datenbanken implementiert.

Schritt für Schritt zur Implementierung einer Datenbank in Java

Wir gehen dafür Schritt für Schritt den Ablauf durch, wie man eine Verbindung zu einer Datenbank herstellt. Als erstes binden wir unseren Treiber in das Projekt ein. Das ist wichtig, denn sonst funktioniert nachher gar nichts.

Danach erstellen wir eine Klasse DBConnection und importieren alles, was wir brauchen werden.

Nun können wir anfangen, unsere Attribute zu deklarieren. Zuerst einmal brauchen wir einen unveränderlichen String, der die Adresse unserer Datenbank enthält. Unveränderlich ist er deshalb, weil er sonst bearbeitet werden kann. Das wollen wir in diesem Fall aber nicht, da wir uns nur mit einer Datenbank verbinden möchten.

Der unveränderliche String enthält die Adresse unserer Datenbank

Als nächstes brauchen wir noch einen user. Dieser ist standardmäßig auf root gesetzt. Sind in deiner Datenbank allerdings andere Benutzer vorhanden, sollten diese verwendet werden, denn der user legt die Zugriffsrechte innerhalb der Datenbank fest.

Praktisch: der user ist standardmäßig auf „root“ gesetzt

Um uns als Benutzer einzuloggen, brauchen wir allerdings noch ein Passwort. Das deklarieren wir als privaten String.

Wenn wir uns jetzt verbinden würden, würde der Zugriff allerdings nicht funktionieren. Das liegt daran, dass wir zusätzlich zur URL unserer Datenbank noch den Namen der Tabelle, auf die zugegriffen werden soll, benötigen.  Grund dafür ist, dass in einer Datenbank mehrere Tabellen erstellt werden können und meist auch müssen, um komplexe Daten zu speichern.

Neben einem Passwort benötigen wir zusätzlich noch den Namen der Tabelle

Als letztes deklarieren wir einen String, der den Befehl speichert, der bei unserer Abfrage ausgeführt werden soll.

Da unsere Attribute private deklariert sind, müssen wir ihnen allerdings auch noch Getter- und Setter-Methoden verpassen, damit wir auf ihre Werte zugreifen und diese manipulieren können.

Getter- und Setter-Methoden für den Zugriff auf die Werte

Einsetzen eines Konstruktors und Try-Catch-Block

Nun brauchen wir noch einen Konstruktor, der unsere Verbindung erst einmal erzeugt. Denn für jeden Zugriff erzeugen wir in Java eine eigene Verbindung und schließen sie nach Abschluss der gewünschten Aktion wieder. Dies hat Sicherheitsrisiken zur Grundlage, da eine ständig offene Verbindung viel anfälliger ist.

Der Konstruktor erzeugt die Verbindung

Als Parameter geben wir dem Konstruktor in diesem Beispiel einfach einen String mit, den der Benutzer in unserer Maske eingegeben hat. Mit diesem setzen wir unseren Befehl Command auf einen SQL-Befehl, der nach ähnlichen Namen wie diesem sucht.

Mit Command sucht der Konstruktor nach ähnlichen Namen wie im String

Verbindungsherstellung in wenigen Schritten

Nun können wir mit dem eigentlichen Etablieren einer Verbindung beginnen.

Dazu legen wir einen Try-Catch-Block an damit wir alle entstehenden Fehler abgreifen können, die unsere Verbindung behindern.

In den Try-Bereich schreiben wir unseren Verbindungsaufbau, in den Catch-Block, das Exception-Handling.

Beginnen wir also mit Schritt eins, dem Laden des Treibers. Dazu erzeugen wir eine neue Instanz des Klassen-Objekts, das als Namen unseren Treiber enthält.

Die neue Instanz des Klassenobjekts enthält den Namen des Treibers

Nachdem das getan ist, können wir Java erklären, wie es eine Verbindung aufbauen soll. Das machen wir mittels eines Verbindungs-Objektes namens con. Dazu rufen wir die Funktion der Klasse DriverManager auf, die sich unserer Attribute bedient und damit versucht, eine Verbindung herzustellen.

Mit DriveManager stellen wir über die con-Funktion eine Verbindung her

Nun wollen wir aber auch noch auf die richtige Tabelle zugreifen. Deshalb erzeugen wir ein Statement-Objekt. Um die Tabelle aufzurufen, müssen wir jetzt nur noch dessen execute-Methode aufrufen und als Parameter angeben, welche Tabelle wir nutzen wollen.

Mit einem Statement-Objekt greifen wir auf die richtige Tabelle zu

So! Damit sind wir endlich bereit, unsere Daten abzufragen.

Dazu nutzen wir erneut unser stt und rufen seine executeQuery-Funktion auf. Diesmal geben wir als Parameter unseren Befehl ein.

Jetzt müssen wir aber unser Ergebnis auch irgendwo speichern. Das erreichen wir mit einem sogenannten ResultSet Objekt.

Mit ResultSet speichern wir unser Ergebnis

Prima! Du hast jetzt erfolgreich Daten aus deiner Datenbank abgerufen.

Alles, was jetzt noch zu tun bleibt, ist sie auszugeben und alles wieder zu schließen.

Durchlaufen einer Schleife zum Schluss

Um unser Resultat anzuzeigen, brauchen wir eine Schleife, die durch all unsere Treffer läuft. Sollte die Abfrage mehrere Treffer liefern, würden wir ohne sie nämlich nur einen dieser Treffer angezeigt bekommen.

Diese Schleife lassen wir die gewünschten Spalten unseres Ergebnisses in einen String speichern. Praktischerweise gibt es dafür die getString Funktion unseres ResultSet-Objekts.

Nun müssen wir nur noch den String, den wir erhalten, ausgeben.

Das geht am einfachsten mit einer System.out.println Funktion. In unserem Fall erhält der Nutzer allerdings die Daten zurück in sein GUI.

Den String, den wir erhalten, geben wir mit der System.out.println-Funktion aus

Um das ganze abzurunden, müssen wir noch die bereits angesprochenen Sicherheitsrisiken eliminieren. Dazu rufen wir einfach von all unseren Verbindungs-Objekten, also von res, stt und con, die bereitgestellte close-Funktion auf.

Mit der close-Funktion eliminieren wir alle Sicherheitsrisiken

Geschafft! Jetzt haben wir erfolgreich eine Verbindung zu einer Datenbank in Java hergestellt. Probiere es doch selbst einmal aus!

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung.