JDBC Konzepte Realisierung von Zugriffen

Slides:



Advertisements
Ähnliche Präsentationen
Einführung "Datenbanksysteme"
Advertisements

Object Relational Mapping
E-Commerce Shop System
Webinterface für eingebettete Systeme in Dual-Server-Architektur
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
Datenbanken Einführung.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
2. DB-API: Programmierschnittstellen zu Datenbanken
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Internet-Datenbanken
Datenbankzugriff im WWW (Kommerzielle Systeme)
Objektorientierter Entwurf (OOD) Übersicht
Anbindung an Anwendungen
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Objektorientierte Programmierung
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
Java: Grundlagen der Sprache
Datenbankanwendungen mit Java und JDBC
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Transaction Script Software Component Technology for Distributed Applications.
JAVA RMI.
Introducing the .NET Framework
Access 2000 Datenbanken.
Seminar: Verteilte Datenbanken
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Remote Methode Invocation (RMI)
DVG Klassen und Objekte
JDBC EDV JDBC.
Einführung MySQL mit PHP
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Einführung und Überblick
PHP Pakete und Beispiele Webengineering Robert Lemke.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
... und alles was dazugehört
ODBC (Open Database Connectivity)
Sesame Florian Mayrhuber
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Allgemeines zu Datenbanken
JDBC (Java DataBase Connectivity)
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Datenanbindung in Webapplikationen
Datenbankanbindung mit
Eike Schallehn, Martin Endig
Stundenplanung Programm zur Stunden- und Zimmerplanung auf der Basis von Datenbanken und unter Berücksichtigung von Mehrfachnutzung im (lokalen) Netz (Internet.
OQL-Anbindung an Java (1) Java als Beispiel für die Einbettung von OQL in eine Programmiersprache Die OQL-Einbettung in Java ist teilweise mit dynamischem.
->Prinzip ->Systeme ->Peer – to – Peer
Datenbanken im Web 1.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche.
JDBC – Datenzugriff aus Java
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
© WZL/Fraunhofer IPT Entwicklung einer Profilbörse für Konfigurationen von Smartphones Vortrag der Seminararbeit von Patrick Posor Aachen, den
Verteilte Anwendungen: J2EE
JDBC Java DataBase Connectivity
 Präsentation transkript:

JDBC Konzepte Realisierung von Zugriffen 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 Zusammenfassung

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

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

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

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

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

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

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

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

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

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:

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

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

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)

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

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

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”)

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()

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

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

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)

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

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

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