In Sachen Java und Datenbank bin ich ein totaler Neuling. Allerdings hält man sich ja gern fit in solchen Sachen und da wir hier firmenintern ein neues Desktop-Tool brauchen, bot sich Java an. Für mich die einzige Schwierigkeit: Die Verbindung von Java zur MySQL-Datenbank.
Lange habe ich gesucht, lange herumprobiert und getippt und gelesen und wieder getippt. Am Ende habe ich es dann geschafft, mit ganz einfachen Mitteln eine Verbindung herzustellen.
Die Anforderungen waren:
- Connect zur MySQL Datenbank
- Ausführen eines SELECT´s
- Auswerten der Antwort
- Schließen der Datenbank
Das ganze aber ohne Frameworks wie Hibernate oder sowas, sondern nur mit Bordmitteln, die Java mitliefert. Betrachtet man das Ergebnis, ist es doch sehr einfach, aber man muss es ja auch erstmal wissen. Ich will es euch nicht vorenthalten. Dazu habe ich mal eine Beispiel – Konsolen Anwendung mit NetBeans erstellt, der Code läßt sich aber problemlos in große Projekte übernehmen.
Schritt 0: Benötigte imports
Folgendes import wird benötigt
import java.sql.*;
Vor den ganzen Code setzt man noch folgende Merker:
Statement stmt;
ResultSet rs;
Die Funktion von ResultSet und Statement erkläre ich später.
Schritt 1: Treiber einbinden
(Alles ab hier sollte in einen try…catch Block)
Den Treiber für MySQL muss man mit 2 Schritten einbinden, in Netbeans geht das ziemlich einfach.
a) Rechtsklick auf das Projekt, Properties, dann Libraries, dann bei „Compile“ und „Run“ die „MySQL JDBC Driver“ mit „Add Library“ auswählen und bestätigen.
b) Den Code
Class.forName("com.mysql.jdbc.Driver");
hinzufügen.
Schritt 2: Verbindung zur MySQL-Datenbank herstellen
Die Verbindung zur Datenbank wird wie folgt hergestellt
String url = "jdbc:mysql://localhost:3306/meinDatenbankSchema";
Connection con = DriverManager.getConnection(url,"benutzername", "benutzerpasswort");
stmt = con.createStatement();
Zeile 1 definiert das Datenbankziel, Zeile 2 stellt die eigentliche Verbindung her. Nicht vergessen, die Daten für „meinDatenbankSchema„, „benutzername“ und „benutzerpasswort“ anzupassen.
Zeile 3 erzeugt ein sogenanntes „Statement“ Objekt, mit welchem wir Anfragen an die Datenbank stellen können (Querys).
Schritt 3: Querys zur Datenbank senden
SQL-Querys sendet man mit Hilfe des Statement-Objektes zur Datenbank und wertet das ganze mit dem ResultSet-Objekt wieder aus.
SELECT-Beispiel, absenden des SQL, return-typ ist ResultSet:
rs = stmt.executeQuery("SELECT vorname, nachname FROM users");
UPDATE-Beipiel, absenden des SQL, return-typ ist integer:
int anzahlZeilen = stmt.executeQuery("UPDATE users SET vorname = 'Harry' WHERE vorname='Larry' ");
Schritt 4: Auswerten eines SELECT Ergebnisses
Bei einer SELECT Anfrage bekommt man ein ResultSet Objekt zurück, dieses kann man wie folgt auswerten:
while (rs.next())
{
String vorname = rs.getString("vorname");
String nachname = rs.getString("nachname");
System.out.println("Vorname: "+vorname+" | Nachname: "+nachname);
}
Schritt 5: Auswerten eines UPDATE Ergebnisses
Einfach den integer auswerten, er gibt die Anzahl der sogenannten „betroffenen Zeilen“ an.
Schritt 6: Verbindung zur MySQL-Datenbank schließen
Geht ganz einfach und sollte in jedem Fall gemacht werden (im Gegensatz zu PHP, wo das leider noch ein kann ist, ist es bei Java ein muss).
con.close();
So, ich hoffe, ihr könnt damit was anfangen – im wahrsten Sinne des Wortes. Mir jedenfalls wird es sehr helfen, meine ersten Datenbankabhängigen Servlets, JSP’s oder Java-Anwendungen zu schreiben.