Das Package java.sql stellt eine Reihe von Klassen zur Verfügung, die die gewünschten SQL-Abfragen ermöglichen. Das folgende Beispiel stellt alle Klassen und Methoden vor, die für eine Verbindung zum Datenbankserver notwendig sind.
import java.sql.*;
public class DatenAnzeigen {
static void zeileAusgeben() {
String zeile = "+--------+-------+----------------------------------------------------------java-+-------+-------+";
System.out.println(zeile);
}
static void headerAusgeben() {
String header ="| id | Numm. | Artikelbezeichnung | Anz. | Preis |";
zeileAusgeben();
System.out.println(header);
zeileAusgeben();
}
static String bezeichnungAusgeben (String bezeichnung) {
int bl = bezeichnung.length();
if (bl < 60)
for (int i = bl; i < 60; i++)
bezeichnung += ' ';
return bezeichnung;
}
static void sqlAbfrage() {
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://10.0.1.2/kurs","tux","");
Statement stmt = con.createStatement();
ResultSet rslt = stmt.executeQuery("select id, nummer, bezeichnung, anzahl, preis from artikel");
stmt.close();
con.close();
headerAusgeben();
while (rslt.next()) {
String bezeichnung = bezeichnungAusgeben(rslt.getString(3));
System.out.println("| " + rslt.getInt(1) +
"\t | " + rslt.getInt(2) +
"\t | " + bezeichnung +
"\t | " + rslt.getInt(4) +
"\t |" + rslt.getDouble(5) +
"\t |");
}
zeileAusgeben();
}
catch (Exception e) {
System.out.println("EXCEPTION: " + e.getMessage());
e.printStackTrace();
}
}
public static void main (String args[]) {
sqlAbfrage();
}
}
Die Class - Methode forName() initialisiert den angegebenen Treiber org.gjt.mm.mysql.Driver. Die Methode getConnection() der Klasse DriverManager liefert die eine Connection - Schnittstelle zur gewünschten Datenbank. Damit steht die con - Methode createStatement() zur Verfügung, mit der das statement - Objekt erzeugt wird. Die Methode executeQuery() erlaubt schließlich das Ausführen der gewünschten SQL-Abfrage an den bereits verbundenen Server. Sowohl das statement - Objekt als auch das con - Objekt müssen am Ende mit der Methode close() beendet werden.
Die Methode e.printStackTrace() liefert Angaben, in welchen CodeZeilen Fehler aufgetreten sind. Sie liefert daher wertvolle Debug-Informationen.
Wir erhalten auf der Textkonsole damit die folgende Ausgabe:
+--------+-------+----------------------------------------------------------java-+-------+-------+ | id | Numm. | Artikelbezeichnung | Anz. | Preis | +--------+-------+----------------------------------------------------------java-+-------+-------+ | 1 | 143 | Handbuch der Programmierung | 2 |45.55 | | 2 | 392 | LinuX am Desktop | 4 |24.5 | | 3 | 102 | MySQL - die komplette Referenz | 1 |44.63 | | 4 | 321 | XML - XSLT, XSLFO, SAX | 1 |39.65 | +--------+-------+----------------------------------------------------------java-+-------+-------+