Allgemeines ODBC java.sql Beispiele JDBC • Java Data Base Connectivity • Programmierschnittstelle für relationale Datenbanken • Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen • Verwendet SQL zur Datenbankabfrage Allgemeines Datenbankabfragen mit Java und JDBC ODBC java.sql Beispiele Java JDBC LAN/Internet Datenbank Allgemeines ODBC java.sql Beispiele Durchführung einer Datenbankabfrage mit JDBC • Erstellen einer MS Access Datenbank • Einrichtung einer ODBCTreiberverbindung • Abfrage der Datenbank in einem Java-Programm mit JDBC Allgemeines ODBC java.sql Beispiele Aufgabe: Erstellen Sie eine MS-Access Datenbank mit dem Namen Filme. Diese Datenbank besteht aus einer Tabelle mit dem Namen Film und den Feldern Nummer (Autowert, = Primärschlüssel), Titel (Text) und Regisseur (Text). Geben Sie drei Datensätze ihrer Wahl ein. Allgemeines ODBC java.sql Beispiele ODBC • Standarddatenbanktreiber für Windows Betriebssysteme • Einrichten einer Datenquelle (Access) – Gehen Sie in die Systemsteuerung (START/EINSTELLUNGEN/ SYSTEMSTEUERUNG) – Wählen Sie 32-Bit-ODBC bzw. VERWALTUNG/Datenquellen Allgemeines ODBC java.sql Beispiele – Wählen Sie die Registerkarte Benutzer-DSN und Hinzufügen – Geben Sie den Datenquellenname Filme an – Wählen Sie die Datenbank aus Allgemeines ODBC Wichtige Klassen und Interfaces des Package java.sql • Driver java.sql • DriverManager Beispiele • Connection • Statement • ResultSet Interface das jeder Treiber implementieren muss stellt eine Verbindung zwischen Programm und Datenbank her Verbindung zwischen Programm und Datenbank Befehle die an die Datenbank geschickt werden Daten die zurückgeliefert werden Reihenfolge Allgemeines ODBC java.sql Beispiele • • • • • Verbindungsaufbau (Connection) Erzeugen eines Abfrageobjekts (Statement) Erzeugen eines Ergebnismengenobjekts (ResultSet) Ausführen der Abfrage (executeQuery) Ausgabe import java.sql.*; public class Filmabfrage { public static void main (String[] args) throws Exception { Allgemeines ODBC java.sql Laden des Treibers Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Verbindung zur Datenbank aufbauen und Statement erzeugen Connection verbindung = DriverManager.getConnection("jdbc:odbc:Filme"); Auslesen der Daten Statement befehl = verbindung.createStatement(); ResultSet datenmenge; datenmenge = befehl.executeQuery("SELECT * FROM Film;"); Beispiele String titel; String regisseur; while (datenmenge.next()) { Ausgabe der Datensaetze titel = datenmenge.getString("Titel"); regisseur = datenmenge.getString("Regisseur"); System.out.println(titel + ": " + regisseur); } verbindung.close(); } } Allgemeines ODBC java.sql Beispiele Aufgabe: Ändern Sie das Programm dahingehend, dass nur mehr der Datensatz welcher zum Titel "Alien" gehört ausgegeben wird. Anmerkung: Belassen Sie die SQLAnweisung und führen Sie die Änderungen im Ausgabeteil durch. Lösung Allgemeines ODBC java.sql while (datenmenge.next()) { titel = datenmenge.getString("Titel"); regisseur = datenmenge.getString("Regisseur"); Beispiele if(titel.equals("Alien")) System.out.println(titel + ": " + regisseur); } Allgemeines ODBC Aufgabe: Ändern Sie das Programm so, dass Sie nach einem Titel ihrer Wahl gefragt werden. java.sql Beispiele Anmerkung: • Importieren Sie das Package java.io.*; • Fügen Sie folgende Anweisungen in die mainMethode ein: System.out.println("Geben Sie einen Filmtitel ein:"); BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in)); String eingabewert = eingabe.readLine(); Allgemeines ODBC java.sql Beispiele Aufgabe: Erstellen Sie eine Datenbank Haustiere mit den Feldern Nummer (Autowert, Primärschlüssel), Tierart (Text), Name (Text), und Gewicht (Zahl). Fragen Sie diese Datenbank über ein JavaProgramm HaustiereAbfrage ab. Geben Sie zunächst alle vorhandenen Daten aus und fügen Sie erst dann die Möglichkeit ein, einen Abfragewert "von außen" einzugeben. Versuchen Sie das Programm schrittweise aufzubauen und erklären Sie die Bedeutung der einzelnen Programmteile.