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-+-------+-------+