Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

JDBC Konzepte Realisierung von Zugriffen

Ähnliche Präsentationen


Präsentation zum Thema: "JDBC Konzepte Realisierung von Zugriffen"—  Präsentation transkript:

1 JDBC Konzepte Realisierung von Zugriffen
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 -
Java- Anwendung JDBC-Treiber-Manager JDBC-ODBC-Bridge-Treiber Native Interface (DLL) ODBC-Treiber-Manager ODBC-Treiber Datenbankbibliothek JDBC-Treiber Typ-1 JDBC-ODBC-Bridge nativer ODBC-Treiber lokal beim Client installiert lediglich lokale Datenquellen können angesprochen werden DBMS

9 Java und Datenbanken - JDBC-Architektur -
Java- Anwendung JDBC-Treiber-Manager Native Java-Treiber Native Interface (DLL) Datenbankbibliothek 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 DBMS

10 Java und Datenbanken - JDBC-Architektur -
Java- Anwendung JDBC-Treiber-Manager Java-Treiber Middleware ODBC-Treiber-Manager ODBC-Treiber Datenbankbibliothek 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 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: Statement mein_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


Herunterladen ppt "JDBC Konzepte Realisierung von Zugriffen"

Ähnliche Präsentationen


Google-Anzeigen