JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Blue J.
der Universität Oldenburg
der Universität Oldenburg
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Datenbank-Zugriffsschnittstellen. © Prof. T. Kudraß, HTWK Leipzig Überblick Datenbankzugriff mit PHP Datenbankzugriff mit JDBC Datenbankzugriff mit PSP.
2. DB-API: Programmierschnittstellen zu Datenbanken
Internet-Datenbanken
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Anbindung an Anwendungen
Ausnahmen HS Merseburg (FH) WS 06/07.
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Dynamische Datentypen
Indirekte Adressierung
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.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
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.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
Imperative Programmierung Funktionen und Parameter
JDBC Konzepte Realisierung von Zugriffen
Modularisierungstechniken
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
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 Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
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 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
ODBC (Open Database Connectivity)
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Programmierprojekt Java Server Pages
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Transaktion Huang Zhenhao FU Shuai.
Unterprogramme in JAVA
SQLite und XML in PHP 5.
Einführung in PHP 5.
Datenbankanbindung mit
Transaktionsverwaltung
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.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Dynamic SQL Preparing a query: EXEC SQL PREPARE FROM ; Executing a query: EXEC SQL EXECUTE ; “Prepare” = optimize query. Prepare once, execute many times.
Java-Kurs Übung Besprechung der Hausaufgabe
Benutzerdefinierte Tags
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
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:
O/R - Mapper Hibernate ETIS SS04. Hibernate 2 Gliederung Motivation Architektur Persistente Klassen Mapping-Files Konfiguration und Datenbanken Ablauf.
1 Prof. Dr. Andreas SchmietendorfWS06/07 Übung 3 Test der Möglichkeiten des JDBC-Interfaces.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
© 2005, Rudolf Jansen JDBC Rudolf Jansen Freiberuflicher Entwickler und Autor DOAG - SIG Development.
Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC
JDBC Java DataBase Connectivity
 Präsentation transkript:

JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche Programmierschnittstellen somit schwer, DBMS-unabhängige Anwendungen zu entwickeln und Probleme bei Portierung auf andere DBMS deshalb JDBC entwickelt

JDBC2 Motivation (II) mit selben Quellcode jede beliebige DB angesprechen (Voraussetzung Treiber und ANSI SQL-2 Fähigkeit der DB) einfacher Zugriff aus Java auf bestehende Datenbanken Plattform- und datenbankunabhängig seit JDK1.1 Bestandteil der Java- Standarddistribution

JDBC3 Bestandteile (I) Klassen und Schnittstellen des package java.sql bzw. javax.sql Drivermanager –Einstiegspunkt, –Treiber registriert, –DB-Verbindung aufgebaut Connection –repräsentiert DB-Verbindung –eine Anwendung kann mehrere DBs öffnen

JDBC4 Bestandteile(II) Statement –ermöglicht Ausführung von SQL-Anweisungen über gegebene Verbindung ResultSet –verwaltet Ergebnisse einer Anfrage –unterstützt Zugriff auf einzelne Spalten

JDBC5 Treibermanager führt Liste mit allen geladenen Treibern alle Verbindungen vom Programm zur Datenbank laufen über ihn Treiber aufgrund Verbindungsinformationen gewählt Treiberkonzept bewirkt Flexibilität von JDBC

JDBC6 Treiber Treiber Schnittstelle zwischen JDBC und DB –Austausch Treiber ermöglicht Zugriff auf andere DB mit selben Quellen –d.h. jedes DBMS benötigt eigenen Treiber explizites Laden im Programm: Class.forName(„jdbc.odbc.JdbcOdbcDriver“); –Java-Classloader lokalisiert Treiber und lädt und linkt ihn automatisch –danach registriert sich Treiber selbständig beim Treibermanager

JDBC7 Connection repräsentiert Verbindung zur Datenbank Verbindungsaufbau: Connection con=DriverManager.getConnection (String url, String name, String passwort); –Url: jdbc: : Ablauf JDBC-DB-Anwendung: –Verbindungsaufbau zur DB –SQL-Anweisung senden –Anfrageergebnisse verarbeiten

JDBC8 Statement + ResultSet Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery(“select...”); while(rs.next()){ System.out.println(rs.getString(“name”)); } rs.close(); stmt.close();

JDBC9 Statement Drei Arten für Ausführung von SQL: –Statement: einfacher SQL-Befehl –PreparedStatement: vorkompilierter SQL-Befehl –CallableStatement: Aufruf einer Prozedur Anfragen (createQuery) Einfüge-, Änderungs- und Löschoperationen sowie DDL-Anweisungen (createUpdate) –Rückgabewert kein ResultSet sondern Anzahl betroffener Tupel oder 0 bei DDL-Befehlen

JDBC10 PreparedStatement (I) Zeichenkette mit SQL-Anweisung bei Erzeugung des Objektes zu DBMS gesendet, dort kompiliert und zur Ausführung vorbereitet Laufzeitvorteile, wenn Anweisung mehrfach mit verschiedenen Parametern ausgeführt für endgültige Ausführung: IN-Parameter übergeben

JDBC11 PreparedStatement(II) PreparedStatement pstmt = con.prepareStatement(“select * from table where name=?”); pstmt.setString(1, “test”); ResultSet rs = rs.executeQuery();

JDBC12 Fehlerbehandlung JDBC kontrolliert nicht, ob Anfrage richtig, wenn falsch von DB Fehler erzeugt Fehler bei Verbindungsproblemen oder DBMS- oder Hardwarefehler Fehler als Exceptions signalisiert – mit try und catch abfangen Exception bedeutet nicht unbedingt, dass Methode nicht ausgeführt  besser explizit zurücksetzen

JDBC13 Metadaten Informationen über die Datenbank –DB-Schema, SQL-Dialekt, implementierte Operationen Schnittstelle java.sql.ResultSetMetaData: –Struktur des ResultSet rs.getColumnCount(); java.sql.DatabaseMetaData: –Struktur DB oder DBMS dmd.getURL();

JDBC14 Transaktionen i.d.R. Verbindungen im autocommit-Modus gestartet (einzelnes Statement sofortige Auswirkung auf Datenbank) mehrere Operationen zusammenfassen: connection.setAutocommit(false); –so: Änderungen zu beliebigen Zeitpunkt dauerhaft in DB geschrieben (commit()) oder –Änderungen aktueller Transaktion rückgängig gemacht (rollback())

JDBC15 Neuerungen in JDBC 2.1(I) Scrollbare ResultSets –rückwärts durchlaufen –sensitiv Datenänderungen noch nach Öffnen des ResultSets aktualisiert Änderbare ResultSets –Tupel einer Ergebnismenge ändern (Änderungen wirken sich auf Datenbank aus) SQL99-Datentypen –benutzerdefinierte Typen, BLOB, ARRAY...

JDBC16 Neuerungen in JDBC 2.1(II) BatchUpdates –Ausführung mehrerer Änderungsoperationen als Batch (Performancegewinn) Connection Pooling –Reduzierung Verbindungsauf- und -abbau –wenn DB-Verbindung geschlossen, nicht beendet, sondern markiert –will andere Anwendung Verbindung öffnen, Prüfung, ob passende Verbindung in Pool - nur wenn nein, neue aufgebaut

JDBC17 Neuerungen in JDBC 2.1(III) Erweiterungen können Entwicklung von Anwendungen erleichtern viele neue Eigenschaften optional und müssen nicht von JDBC-Treibern unterstützt werden alte Treiber weiter nutzbar (unterstützen aber Neuerungen nicht)

JDBC18 Quellen Saake, G., Sattler, K.: Datenbanken & Java: JDBC, SQLJ und ODMG dpunkt.verlag, Heidelberg, Mai