1 / 14

Datenbankzugriff mit JDBC

Datenbanken und Informationsysteme I. Datenbankzugriff mit JDBC. Stefan Böttcher Adelhard Türling. Universität Paderborn. Inhaltsverzeichnis. Überblick über JDBC Wichtige Interfaces Datenbankinitialisierung : dbinit.java Datenselektion : dbselect.java Metadaten der Datenbank: dbinf.java

mavis
Download Presentation

Datenbankzugriff mit JDBC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Datenbanken und Informationsysteme I Datenbankzugriff mit JDBC Stefan Böttcher Adelhard Türling Universität Paderborn

  2. Inhaltsverzeichnis • Überblick über JDBC • Wichtige Interfaces • Datenbankinitialisierung : dbinit.java • Datenselektion : dbselect.java • Metadaten der Datenbank: dbinf.java • Metadaten einer Tabelle: dbtab.java • Praktische Hinweise zum Arbeiten mit JDBC, ODBC

  3. Überblick über JDBC Java Data Base Connectivity Schnittstelle • Package: • java.sql (core) • javax.sql (benutzt in J2EETM) http://java.sun.com/j2se/1.4.1/docs/api/ • Tutorial: htp://java.sun.com/j2se/1.4.1/docs/api/

  4. Was ist und was bietet JDBC • Paket von Java-Klassen zum DB-Zugriff mit SQL • vom Ziel-DBMS unabhängige API • Standard seit Java 1.1 mittlerweite JDBCV3.0 Java-Programm JDBC:APITreibermanager Treiber Ziel-datenbanksystem

  5. Interfaces von JDBC • SQLDriver: Treiber für ein Ziel-DBMS oder ODBC • SQLDriverManager : registriert Treiber • Connection : Für Verbindungen • Statement : für Statement-Objekt, z.B. Query • ResultSet : für Ergebnismenge • DataBaseMetaData : für Schemainformationen Die Klassen zu diesen Interfaces werden von DB-Herstellern implementiert JDBC-ODBC-Brücke wird von SUN mitgeliefert

  6. Datenbankzugriffe mit JDBC • Treiber laden Class c = Class.forName(“com.sybase.jdbc.SybDriver“) ; • Verbindung herstellen con = DriverManager.getConnection( "jdbc:sybase:Tds:beethoven.uni-paderborn.de:4100/datenbanken01" , "userid", "password" ); Statement-Objekte definierenStatement stmt = con.createStatement() ; • Datenbank zugreifen ... Statement und Verbindung zum DBMS schließen stmt.close( ) ; con.close( ) ; (Fehlerbehandlung mit try-catch)

  7. Datenbankzugriffe mit JDBC-ODBC Bridge • Treiber ladenClass c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); • Verbindung herstellen con = DriverManager.getConnection("jdbc:odbc:odbc2access"); • Statement-Objekte definierenStatement stmt = con.createStatement() ; • Datenbank zugreifen ... Statement und Verbindung zum DBMS schließen stmt.close( ) ; con.close( ) ; (Fehlerbehandlung mit try-catch)

  8. Datenbank initialisieren mit JDBC Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:odbc2access");Statement stmt = con.createStatement() ; • Datenbank initialisieren (Data Defenition Language DDM) stmt.executeUpdate( "drop table Liefert" ); stmt.executeUpdate( "create table Liefert( Lieferant char(10), Teil char(10), " + " Preis int, Lieferzeit int ) " ); • Einfügen (Data Manipulation Language DML) stmt.executeUpdate( "Insert into Liefert values('Vobis ','pc400',1700,3)" ); ...

  9. Datenbank-Anfragen mit JDBC Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:odbc2access");Statement stmt = con.createStatement() ; • Datenbankanfrage stellen ResultSet rsLiefert = stmt.executeQuery( “ select * from Liefert where Teil = ‘pc500‘ “);while ( rsLiefert.next( ) ) // hole nächstes Tupel aus Result-Set { ausgabe += rsLiefert.getString( "Lieferant" ) ; // ggf. weitere Spalten ausgeben } stmt.close( ) ; con.close( ) ;

  10. Metadaten der Connection Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:odbc2access");Statement stmt = con.createStatement() ; • Metadaten holen DatabaseMetaData md = con.getMetaData(); • Hilfsvariable final String[] tabellen = {"TABLE"}; • Hole Tabellennamen ResultSet tablesNames =md.getTables(null,null,null,tabellen); while (tablesNames.next()) { // Hole Tabellenname String tablename = new String(tablesNames.getString(3)); ausgabe += tablename + "\n" ; }

  11. Metadaten einer Tabelle ResultSet rs = stmt.executeQuery("select * from " + "Auftrag"); • Hole Meta-Daten für dieses Result Set ResultSetMetaData rsmd= rs.getMetaData(); int spaltenAnzahl = rsmd.getColumnCount(); • Attribut Namen der Tabelle for( spalte=1 ; spalte <= spaltenAnzahl ; spalte++ ) { ausgabe += rsmd.getColumnLabel( spalte ) + "\t\t" ; } ausgabe += "\n-------------------------------------\n" ; • Tupel ausgeben while (rs.next()) {for( spalte=1 ; spalte <= spaltenAnzahl ; spalte++ ) { ausgabe += rs.getString(spalte) + "\t" ; } ausgabe += "\n" ; }

  12. Praktische Hinweise zum Arbeiten mit JDBC, ODBC Systemvoraussetzungen • Datenbanksystem: Access, Oracle oder anderes rel. DBMS • JDK (aktuell: J2DK1.4) • Umgebungsvariable path: z.B. set Path=C:\j2sdk1.4.0\bin;%path% • Umgebungsvariable classpath: z.B. set classpath=.;c:\j2sdk1.4.0\lib • ODBC muß installiert sein.

  13. ACCESS ODBC Quelle einrichten • Mit Access eine neue DB erstellen und speichern: • Z.B.: dbtest.mdb • ODBC Quelle für Access einrichten: • Arbeitsplatz | Systemsteuerung | Verwaltung | ODBC • Karte Benutzer-DSN • Name z.B. "odbc2access" • Treiber: "Microsoft Access-Treiber (*.mdb)". • Bestätigen mit "OK" • Nun ist unter dem Namen: "odbc2access" die Access DB über die abstrakte Schnittstelle ODBX erreichbar

  14. Excle als ODBC Quelle

More Related