1 / 25

Java und Datenbanken

Java und Datenbanken. JDBC Konzepte Realisierung von Zugriffen. Java und Datenbanken - Gliederung -. Einführung in JDBC JDBC-Architektur 2-Schichten-Modell vs. 3-Schichten-Modell JDBC und ODBC JDBC Treiber und -typen Package SQL Manipulation von Tabellen JDBC-Erweiterungen

ban
Download Presentation

Java und Datenbanken

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. Java und Datenbanken JDBC Konzepte Realisierung von Zugriffen

  2. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  3. Java und Datenbanken- Einführung in JDBC - • Java Database Connectivity Interface (JDBC) • ist Handelsmarke der Firma Sun Microsystems • ist vollständig in Java implementiert • stellt API zur Verfügung, um SQL-Datenbankabfragen zu realisieren • fordert hierbei KEINE Voraussetzungen an die benutzte Datenbank, d.h. Java-Applikationen können unabhängig von der verwendeten Datenbank erstellt werden Informix DB2 Sybase Anwendung JDBC-API

  4. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  5. Java und Datenbanken- JDBC-Architektur - • Zwei-Schichten-Modell vs. Drei-Schichten-Modell Java-Anwendung Client Socket, RMI, CORBA, etc. Anwendungsserver Servermaschine JDBC-Treiber DBMS-spezifisches Protokoll DBMS Datenbankserver Java-Anwendung Client JDBC-Treiber DBMS-spezifisches Protokoll DBMS Datenbank-Server • Client-Server-Architektur • Treiber wird über das Netz geladen • Treiber muss netzwerkfähig sein • Web- & DB-Server auf gleicher Maschine • hohe Rechenleistung erforderlich • Zusätzliche Schicht als Komponentenadapter • Treiber lokal bei Server • Treiber muss NICHT netzwerkfähig sein • Mittlere Schicht • ermöglicht Kontrolle von DB-Zugriffen • stellt DB-Operationen für komfortable Nutzung im API zur Verfügung

  6. Java und Datenbanken- JDBC-Architektur - • JDBC und ODBC • Open Database Connectivity (ODBC) ist ein weit verbreitetes und akzeptiertes API zum Zugriff auf relationale DB (RDBMS) • Erstellung von Anwendungen, die ODBC nutzen, ist an keine Programmiersprache gebunden • Funktionen des ODBC-API werden durch Treiber bereitgestellt • Aufruf dieser Treiberfunktionen unabhängig von verwendeter DB • ODBC-API wurde von MS in C entwickelt, • d.h.ODBC-API bietet selbst KEINE geeignete Schnittstelle zw. Java und Datenbanken • ABER: im JDBC-Paket ist eine ODBC-JDBC-Brücke (ein spezieller Treiber) enthalten • Sowohl JDBC als auch ODBC verwenden SQL

  7. Java und Datenbanken- JDBC-Architektur - • JDBC-Treiber • die eigentliche Funktionalität der JDBC liegt im vorhandenen JDBC-Treiber • JDBC-Treiber wird über den JDBC-Treiber-Manager verwaltet • Kernstück hierbei ist das Interface java.sql.Driver, das auch auf java.sql.Connection (Verbindungsaufbau), java.sql.Statement (SQL-Anfrage) und java.sql.ResultSet (Ergebnisse) zugreift • es gibt 4 Treibertypen: • Typ-1 und Typ-2 sind NICHT netzwerkfähig • Typ-3 und Typ-4 verwenden Netzwerkprotokoll

  8. Java und Datenbanken- JDBC-Architektur - • JDBC-Treiber Typ-1 • JDBC-ODBC-Bridge • nativer ODBC-Treiber lokal beim Client installiert • lediglich lokale Datenquellen können angesprochen werden Java- Anwendung JDBC-Treiber-Manager JDBC-ODBC-Bridge-Treiber Native Interface (DLL) ODBC-Treiber-Manager ODBC-Treiber Datenbankbibliothek DBMS

  9. Java und Datenbanken- JDBC-Architektur - • JDBC-Treiber Typ-2 • Native API Partly Java Driver • Treiber muss lokal beim Client installiert werden, was i.d.R. durch vorab geladene Treiber sichergestellt wird • der im Typ-1 in nativem Code implementierte ODBC-Treiber wird durch einen herstellerabhängigen Treiber (Informix, DB2) ersetzt Java- Anwendung JDBC-Treiber-Manager Native Java-Treiber Native Interface (DLL) Datenbankbibliothek DBMS

  10. Java und Datenbanken- JDBC-Architektur - • JDBC-Treiber Typ-3 • JDBC Net Pure Java Driver • Anfragen werden in DB-unabh. Netzwerkprotokoll übersetzt • keinerlei Installationen beim Client notwendig • universelle Treiber vom Server ladbar • tatsächliche Treiber wird auf Server ausgeführt Java- Anwendung JDBC-Treiber-Manager Java-Treiber Middleware ODBC-Treiber-Manager ODBC-Treiber Datenbankbibliothek DBMS

  11. Java und Datenbanken- JDBC-Architektur - • JDBC-Treiber Typ-4 • Native Protokoll Pure Java Driver • Verwendung nur von Java-Treibern • Treibertyp muss vom DB-Hersteller entwickelt werden (Kosten!) • portabelste und effektivste Lösung • Wahrung der Plattformunabhängigkeit Java- Anwendung JDBC-Treiber-Manager Java-Treiber Datenbankbibliothek DBMS

  12. Java und Datenbanken- JDBC-Architektur - • Betrachtungen zu den JDBC-Treibern • Treibertypen 3 und 4 • sind eher zu empfehlen als Typen 1 und 2, da hierbei der Datenbankzugriff über das Internet möglich wird • sind jedoch nicht für alle Datenbanken erhältlich • Treibertyp 1 ist am leichtesten zu realisieren, da Java die JDBC-ODBC-Bridge direkt anbietet • Verfügbarkeiten:

  13. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  14. Java und Datenbanken- Package SQL - • Package java.sql • realisiert die eigentliche JDBC-Funktionalität in Java • ist standardmäßig Teil der Java-Bibliothek • 16 Interfaces: • Array, Blob, CallableStatement, Clob, Connection, DatabaseMetaData, Driver, PreparedStatement, Ref, ResultSet, ResultSetMetaData, SQLData, SQLInput, SQLOutput, Statement, Struct • 6 allgemeine Klassen: • Date, DriverManager, DriverPropertyInfo, Time, Timestamp, Types • 4 Exceptions • BatchUpdateException, DataTruncation, SQLException, SQLWarning

  15. Java und Datenbanken- Package SQL - • SQL und Java-Datentypen • nicht alle in SQL definierten Datentypen werden von beliebigen Datenbanksystemen unterstützt (tw. Unterschiede in Bezeichnung) • JDBC stellt Datentypen zur Verfügung, um einen einheitlichen Datenzugriff zu gewährleisten • Methoden setxxx(),getxxx() und registerOutParameter() ermöglichen Konvertierung von JDBC- zu Java-Datentypen • Konvertierung & Abbildung, Beispiele: • BIG INT (SQL-Datentyp) getLong() (Java-Methode) • float (Java-Datentyp) REAL (JDBC-Datentyp) • CHAR (JDBC-Datentyp)  String (Java-Datentyp)

  16. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  17. Java und Datenbanken- Tabellenmanipulation - • JDBC-API • Programmierer kann mit Hilfe des APIs Objekte und Methoden definieren, um Datenbankzugriffe zu realisieren • Zugriff auch als Stapeloperation (Batch) möglich • Art und Weise des DB-Zugriffs • Laden eines geeigneten JDBC-Treibers • Herstellung der Datenbankanbindung • Erstellung eines Statementobjekts und Weitergabe der auszuführenden Anweisungen über das Anweisungsobjekt an das darunter liegende DBMS • Rückgabe der Funktionen in Form von Ergebnisdatensätzen • Schließen der Verbindung zur Datenbank

  18. Java und Datenbanken- Tabellenmanipulation - • Laden eines JDBC-Treibers • Code: class.forName(“meinTreiber“) • Instanz des Treibers wird dynamisch erzeugt und automatisch beim Treibermanager-Objekt registriert • Verbindung zu Datenbanken • Code: Connectino mein_con = DriverManager.getConnection(db_url, userID, passwd); • Generierung und Ausführung von Statements • Statementobjekt wird benötigt • Code: Statementmein_stmt = mein_con.createStatement(); • Anfragen durch die Methoden executeQuery(), executeUpdate(), executeBatch(), execute() • Code:Resultset mein_result = mein_stmt.executeQuery(“Select * FROM Spieler”)

  19. Java und Datenbanken- Tabellenmanipulation - • Rückgabe von Ergebnissen • Code: SELECT Gespielt, Nachname FROM Spieler String name = mein_result.getString(“Name”) int anzahlSpiele = mein_result.getInt(“Gespielt”) ResultSet.next • Schließen einer Verbindung • Code: mein_con.close()

  20. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  21. Java und Datenbanken- JDBC-Erweiterungen - • Java Naming and Directory Interface (JNDI) • explizite Angabe eines Treibers und einer URL zur Anbindung an DBMS schafft Abhängigkeiten, diese sollten vermieden werden • JNDI legt logische Namen für DBs und Treiber fest • Anwendung erhält ein DataSource-Ojekt • mit Hilfe von JNDI können DataSource-Objekte ausgetauscht werden, ohne dass der Code verändert werden muss

  22. Java und Datenbanken- JDBC-Erweiterungen - • Connection Pooling (Verbindungszusammenschluss) • ist Teil von javax.sql • Verwaltung der physikalischen Verbindungen zum DBMS im Cache • Bei Anforderung einer Verbindung zum DBMS durch Java wird im Cache nach einem PooledConnection-Objekt gesucht, ist keins vorhanden, wird dieses erzeugt • Erzeugung des Objektes ist für Java transparent • JNDI übergibt JDBC-Implementation (mit Connection Pooling)

  23. Java und Datenbanken- JDBC-Erweiterungen - • Distributed Transaction Support (Unterstützung verteilter Transaktionen) • Transaktion = Bündelung von mehreren Datenbank-Operationen • JDBC kann so das standardmäßige Two-Phase-Commit- Protokoll nutzen • Vereinfachung • des Einsatzes von JDBC im Zusammenhang mit Enterprise-JavaBeans • des Transaktions--Managements in verteilten Systemen

  24. Java und Datenbanken- Gliederung - • Einführung in JDBC • JDBC-Architektur • 2-Schichten-Modell vs. 3-Schichten-Modell • JDBC und ODBC • JDBC Treiber und -typen • Package SQL • Manipulation von Tabellen • JDBC-Erweiterungen • Zusammenfassung

  25. Java und Datenbanken- Zusammenfassung - • JDBC ist standardisiertes Interface, das auch direkt SQL-Anweisungen ausführen kann • Vorteile von JDBC • Plattformunabhängigkeit • Einfache Portierbarkeit • Einfache Programmierbarkeit • Erweiterbarkeit • Nachteile von JDBC • schlechte Leistung der Datenbankzugriffe

More Related