Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

JDBC EDV2 - 03 - JDBC.

Ähnliche Präsentationen


Präsentation zum Thema: "JDBC EDV2 - 03 - JDBC."—  Präsentation transkript:

1 JDBC EDV JDBC

2 JDBC : "Java Database Connectivity"
JDBC stellt eine standarisierte Methode zum Zugriff auf Datenbanken aus Java-Programmen zur Verfügung. Einige Datenbanken unterstützen den JDBC-Standard direkt. Viele andere unterstützen ODBC "Open Database Connectivity". Diese können übereinen zu Java gehörigen JDBC-ODBC-Umsetzer angesprochen werden. Damit können fast alle existierenden Datenbanken direkt oder indirekt angesprochen werden. JDBC enthält Möglichkeiten: Verbindungen zu Datenbanken zu öffnen und zu schließen, SQL-Anweisungen an Datenbanken zu schicken und die Antworten entgegenzunehmen und deren Auswertung im Java-Programm zu ermöglichen. EDV JDBC

3 JDBC baut vollständig auf SQL auf. SQL "Standard Query Language"
JDBC baut vollständig auf SQL auf. SQL "Standard Query Language". Die Kommunikation zwischen dem Java-Programm und der Datenbank erfolgt über SQL-Anweisungen. Diese werden als Text an die Datenbank geschickt, die daraufhin als Antwort die Ergebnisse zurückschickt.  Die SQL-Anweisungen werden nicht vom Java-Compiler auf Korrektheit geprüft. Fehler können also erst durch die Datenbank festgestellt werden. Eine weitere Möglichkeit aus Java Datenbanken abzufragen und zu bearbeiten ist SQLJ von IBM, Oracle, Sybase, Informix u.a. SQLJ baut ebenfalls auf SQL auf. Die Anweisungen werden jedoch schon in Java geprüft. Fehler können also schon von Java erkannt werden. EDV JDBC

4 1. Erstellen einer Datenbank
Zunächst muss die Datenbank aufgebaut werden. Dazu müssen geeignete Programme genutzt werde, z.B. Access, dBase, Oracle, Sybase, Informix, DB2, Excel u.s.w. Unser Beispiel ist eine Access-Datenbank mit folgenden Tabellen: Studenten MatrikelNr, Long Integer, Primärschlüssel Name, Text Vorname, Text Veranstaltungen VeranstaltungsNr, Long Integer, Primärschlüssel Titel, Text Kurzbezeichnung, Text Semester, Text Art, Text Stunden, Integer EDV JDBC

5 Id, Long Integer, Primärschlüssel
Belegungen Id, Long Integer, Primärschlüssel MatrikelNr, Referenz auf Tabelle Studenten VeranstaltungsNr, Referenz auf Tabelle Veranstaltungen id MatrikelNr VeranstaltungsNr Belegungen Titel VeranstaltungsNr Kurzbezeichnung Semester Art Stunden Veranstaltungen EDV JDBC Studenten MatrikelNr Name Vorname

6 2. DB in ODBC registrieren
In der Systemsteuerung ODBC bzw. ODBC32 bzw. ODBC-datenquellen öffnen. Es können ODBC-Quellen registriert werden. Dabei können die Datenbanken so registriert werden, dass nur der Nutzer selber auf sie zugreifen kann (Benutzer-DSN) oder so dass alle Nutzer auch über das Netz darauf zugreifen können (system-DSN). Dabei können u.A. auch Namen und Passworte für den Zugriff festgelegt werden. Wichtig: Datenquellenname ist der Name unter dem von Java auf die Datenbank zugegriffen wird. Vorteile: Es existiert ein einheitlicher Zugriff zu allen Datenbanken. Das Java-Programm muss keine Informationen über die konkrete Datenbankdatei haben. Ohne Änderung des des Java-Programms kann die Datenbank (Art, Ort) geändert werden. EDV JDBC

7 3. Treiber in Java laden Um vom Java-Programm auf eine Datenbank zugreifen zu können, muss ein passender Treiber geladen werden. Welcher Treiber passend ist hängt von der Datenbank und dem Betriebssystem ab. In Windows gibt es ODBC-Treiber für alle Datenbanken. Also kann in der Regel der JDBC-ODBC-Treiber von SUN verwendet werden: sun.jdbc.odbc.JdbcOdbcDriver Der Treiber braucht nur ein mal geladen zu werden und steht dann immer zur Verfügung.  Laden erfolgt in einem statischen Block einer Klasse. Laden des Treibers erfolgt z.B. mit Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Ausnahme ClassNotFoundException muss abgefangen werden. EDV JDBC

8 public class StudentenDB { static
String driv = "sun.jdbc.odbc.JdbcOdbcDriver"; try Class.forName(driv); } catch (ClassNotFoundException cnfe) System.err.println(driv+" nicht gefunden!"); System.exit(1); EDV JDBC

9 4. Öffnen der Datenbank Zum Herstellen der Verbindung zwischen der Datenbank und dem Java-Programm stellt die Klasse DriverManager die Methode getConnection zur Verfügung. public static Connection getConnection(String url) Mit Hilfe von url wird dir zu öffnende Verbindung beschrieben. Die genaue Form hängt vom Treiber und von der Datenbank ab. url = protocol:subprotocol:database protocol = jdbc subprotocol = odbc database = StudentenDatenbank Andere Formen von getConnection erlauben die Angabe von Namen und Passwort. Die Herstellung der Verbindung muss vor jedem erneuen Zugriff geschehen. Z.B. in eine Konstruktor. Die Datenbank wird geschlossen, indem die close-Methode der Verbindung aufgerufen wird. EDV JDBC

10 private Connection dbConn = null;
private String connString = "jdbc:odbc:StudentenDatenbank"; public StudentenDB() { try { dbConn = DriverManager.getConnection(connString); } catch (SQLException sqle) { System.err.println("Fehler beim Öffnen der Verbindung "+connString); System.exit(2); public void close() { dbConn.close(); System.err.println("Fehler beim Schließen der Verbindung "+connString); System.exit(3); } } EDV JDBC

11 5. Datenbank abfragen Abfragen erfolgen grundsätzlich mit Hilfe von SQL-Anweisungen. SQL-Anweisungen werden durch die execute-Methode eines Statement-Objektes ausgeführt. Durch die erfolgreiche Ausführung einer SQL-Anweisung wird ein ResultSet-Objekt erzeugt, das die Ergebnisse der Abfrage in Form einer Tabelle enthält. Durch die next-Methode des ResultSet-Objektes kann durch die Zeilen der Ergebnistabelle gewandert werden. Mit Hilfe der getXXX-Methoden des ResultSet-Objektes können die Elemente der Zeilen abgefragt werden. Mit Hilfe der Klasse ResultSetMetaData können Informationen über die Spalten der Tabelle (Name, Datentyp, Schreibbarkeit u.s.w.) abgefragt werden. EDV JDBC

12 public void printContent(String table) { try {
System.out.println(">>>>>>>>>>>>> "+table +" >>>>>>>>>>>>>"); Statement pC = dbConn.createStatement(); pC.execute("SELECT * FROM "+table); ResultSet res = pC.getResultSet(); ResultSetMetaData resMD = res.getMetaData(); int col = resMD.getColumnCount(); for (int i=1;i<=col;i++ ) System.out.print(resMD.getColumnLabel(i)+"\t"); System.out.println(); while (res.next()) { System.out.print(res.getString(i)+"\t"); } res.close(); catch (SQLException sqle) { System.err.println("Fehler beim Lesen der Verbindung "+connString); System.exit(4); EDV JDBC


Herunterladen ppt "JDBC EDV2 - 03 - JDBC."

Ähnliche Präsentationen


Google-Anzeigen