/* Beispiel zum Umgang mit JDBC und MySQL Damit dieses Beispiel funktioniert (Laden des Treibers!), muss der entsprechende Connector (.jar) im Classpath aufgenommen sein; der Connector kann auf den Seiten von MySQL heruntergeladen werden (www.mysql.com) nh - 05/2008 */ import java.sql.*; public class Flensburg { public static void main (String[] args) { /* Schritt 1: Laden des Treibers fuer MySQL-Datenbanken Die Technik, die hier zur Anwendung kommt, heisst "Reflection"; an dieser Stelle reicht es aber aus, diese Technik als Kochrezept zu verwenden */ try { Class.forName("com.mysql.jdbc.Driver"); // Kochrezept } catch (Exception e) { System.err.println("Konnte den Treiber nicht laden: " + e); System.exit(1); // ohne Treiber machen wir erst gar nicht weiter } /* Schritt 2: Aufbau der Verbindung zur Datenbank; dazu haben wir die Klasse Connection zur Verfuegung; */ Connection conn = null; try { // Verbindungsdaten: mysql ist der Servertyp, "orso" der Host, // "flensburg" heisst die gewuenschte Datenbank und der Benutzername // lautet "udb" (weil die Datenbank noch aus der Unix-DB-Vorlesung // stammt); waere ein Passwort noetig, koennte man das ebenfalls hier // setzen String url = "jdbc:mysql://orso/flensburg?user=udb"; conn = DriverManager.getConnection(url); // Verbindung "holen" } catch (SQLException e) { System.err.println("Konnte Verbindung nicht aufbauen: " + e); System.exit(2); // Auch hier macht ein Fortfahren keinen Sinn mehr } /* Schritt 3: Eine Abfrage mit Hilfe der gerade erstellen Verbindung ausfuehren */ try { Statement stmt = conn.createStatement(); // Statement erstellen String sql = "select * from Fahrer"; // String mit SQL-Syntax ResultSet rs = stmt.executeQuery(sql); // Abfrage ausfuehren /* Das ResultSet enthaelt alle Abfrageergebnisse darueber iterieren wir nun */ while (rs.next()) { String nn = rs.getString("nachname"); // Wert aus Spalte "nachname" String vn = rs.getString("vorname"); // dito... String geschl = rs.getString("geschlecht"); String plz = rs.getString("plz"); System.out.print(vn + " " + nn + " ist "); if (geschl.equals("w")) { System.out.print("weiblich "); } else { System.out.print("maennlich "); } System.out.println("und wohnt im PLZ-Bereich " + plz + "."); } } catch (SQLException e) { System.err.println("Die Abfrage war nicht erfolgreich!" + e); } // Weil wir ja ordentliche ProgrammierInnen sind, schliessen wir // nun die Verbindung zur Datenbank wieder (sofern sie nicht null ist) if ( conn != null ) { try { conn.close (); } catch ( SQLException e ) { System.err.println("Verbindung konnte nicht geschlossen werden: "); System.err.println(e); } } } }