1 / 22

JDBC: JAVA Database Connectivity

JDBC: JAVA Database Connectivity. Autor: Martin Hulin, überarbeitete Folien von Michael Austermann. Gliederung. Einleitung JDBC Klassen/Schnittstellen - Übersicht Treiber in JDBC Theoretische Grundlagen Arbeiten mit JDBC JDBC Standard Extension API Aufgabe. Was ist JDBC?.

Télécharger la présentation

JDBC: JAVA Database Connectivity

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. JDBC: JAVA Database Connectivity Autor: Martin Hulin, überarbeitete Folien von Michael Austermann

  2. Gliederung • Einleitung • JDBC Klassen/Schnittstellen - Übersicht • Treiber in JDBC • Theoretische Grundlagen • Arbeiten mit JDBC • JDBC Standard Extension API • Aufgabe

  3. Was ist JDBC? • API für Datenbankzugriff • Speziell für die Programmiersprache JAVA • Wie ODBC • Call Level Interface (CLI) • Basiert auf X/Open-Standard • Unabhängig vom DBMS • Treiber DBMS-spezifisch • Unterschiede zu ODBC • Methoden statt Funktionen • Objekte statt Handle

  4. JDBC-Klassen/Schnittstellen-Übersicht (unvollständig)

  5. Treiber in JDBC

  6. JDBC-Treibertypen

  7. JDBC-Funktionsweise • JDBC spezifiziert nur Schnittstellen • Implementation durch DBMS-Hersteller: Treiber • Es gibt 4 Treibertypen • Typ 3 und 4 sind vorzuziehen:pure JAVA • Treibermanager lädt Treiber • Treiber stellt Verbindung zur Datenbank her

  8. Laden des JDBC-Treibers

  9. Verbindung zur Datenbank:Connection Objekt erzeugen

  10. Programm mit JDBC: Typischer Ablauf • JDBC Treiber laden • Verbindung zur Datenbank aufbauen • Eigenschaften der Verbindung spezifizieren • SQL-Abfrage ausführen:Result-Set erzeugen • Result-Set durchlaufen:Aktionen ausführen • Verbindung zur Datenbank beenden

  11. Programm mit JDBC: Typischer Ablauf als Programmcode // Treiber ladenClass.forName("packageName.YourDriver"); // Verbindung zum DBMS aufbauenConnection con = DriverManager.getConnection("yourURL", "user", "pwd"); // Statement erzeugenStatement stmt = con.createStatement("SELECT * FROM yourTable"); // Statement ausführenResultSet rs = stmt.executeQuery(); // Ergebnismenge bearbeitenwhile (rs.next()) { // Cursor eins vor System.out.println(rs.getInt("emp_id") + rs.getString(2));} // Aufräumarbeitenrs.close(); // Ergebnismenge schließenstmt.close(); // Statement schließencon.close(); // Verbindung zum DBMS schließen

  12. Die JDBC-Klassen:Connection, DatabaseMetaData • Ein Objekt vom Typ Connection repräsentiert eine physikalische Verbindung zum DBMS • Connection steuert Transaktionen mit DBMS • Objekte vom Typ DatabaseMetaData enthalten Informationen über Struktur der Datenbank: Tabellen, Attribute, Domänen, Stored Procedures • Datenbank-Metadaten sind von DBMS zu DBMS unterschiedlich organisiert. • Hier zahlt sich die standardisierte Schnittstelle JDBC aus

  13. Statements (1) • Statements sind die Arbeitspferde in JDBC • Mit ihnen werden Daten manipuliert und gesichtet • Es gibt 3 Typen mit verschiedenen Aufgaben • Statement • Zur Datenmanipulation und zum Erzeugen von ResultSets. • PreparedStatement • Precompiled Statement PreparedStatement pstmt = connnection.prepareSatement( "INSERT INTO emp VALUES (?,?,?,?,?);"); • CallableStatement • zum Ausführen von Stored Procedures

  14. Statements (2) • Statement kann nicht mit new erzeugt werden. • Es wird bei einem Connection Objekt angefordert • Dadurch bleibt der Bezug zur Connection bestehen • Beispiel: Statement stmt = connection.createStatement()

  15. ResultSet (1) • ResultSets enthalten die Ergebnis-Menge eines ausgeführten Statements • Wird von einem Statement erzeugt • Beispiel: ResultSet rs = stmt.executeQuery( "SELECT * FROM employee;") • Jedes RS hat einen Cursor der auf die aktuelle Zeile der Ergebnismenge zeigt.

  16. ResultSet (2) • Verschiedene ResultSet-Typen (je nach Treiber und Anforderung durch Applikation) • Forward only • Scroll-insensitive • Scroll-sensitive • updateable, usw • Zugriff auf Spaltenwerte mit • getXXXX (Spaltenname) oder • getXXXX(Spaltennummer) • XXXX steht für den Datentyp

  17. ResultSet (3)

  18. Batch-Update • Standard: Neues Statement-Objekt für jede Datenmanipulation (insert, update, delete) • Schneller: Mehrere Aufträge sammeln, dann gemeinsam ausführen: Batch-Update • Beispiel • stmt.addBatch ("insert ...")stmt.addBatch ("insert ...")... • Int [] UpdateCounts = stmt.executeBatch ()

  19. Erweiterungen:JDBC Standard Extension API • Kern von JDBC soll einfach und klein sein • Standard-Erweiterungen für JDBC werden in die Standard Extension API ausgelagert. • 3 wichtige Standard-Erweiterungen für JDBC • Java Naming and Directory Interface • Verwendung von Datenquellen: DataSource • Connection Pooling • Wiederverwendung von Verbindungen spart Zeit • Distributed Transactions • Transaktionsmanagement bei mehreren Datenbanken

  20. Connection Pooling

  21. Verteilte Transaktionen • Alle Connections tragen sich über einen RM beim TM ein. • Aktionen auf verschiedenen DBS werden vom TM zu einer Transaktion zusammengefaßt. • Dadurch wird dem Anwendungsentwickler das Transaktions-management auf verteilten Systemen vereinfacht.

  22. Aufgabe beim Autoverleih • JAVA Applikation oder • JAVA Servelet • mit JDBC für • Reservierungsübersicht eines Kunden • Löschen einer Reservierung • Zusatz (evtl.): Reservierung in Ausleihe umwandeln

More Related