JDBC: JAVA Database Connectivity

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Datenbank-Zugriffsschnittstellen. © Prof. T. Kudraß, HTWK Leipzig Überblick Datenbankzugriff mit PHP Datenbankzugriff mit JDBC Datenbankzugriff mit PSP.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
2. DB-API: Programmierschnittstellen zu Datenbanken
MySQL.
Internet-Datenbanken
Allgemeine Technologien II
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Anbindung an Anwendungen
Dr. Brigitte Mathiak WeST – Web Science & Technologies Kapitel 6 Anbindung an Anwendungen.
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.
Java: Grundlagen der Objektorientierung
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Programmierung von Datenbank Anwendungen
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.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
JDBC Konzepte Realisierung von Zugriffen
Programmieren mit JAVA
Transaction Script Software Component Technology for Distributed Applications.
ansprechendes Design Übersichtlichkeit simple(selbsterklärende) Navigation unsere Credos : design programming Ltd.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Einführung in Java1 Einführung in JAVA.
JDBC EDV JDBC.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Einführung in die Programmierung Datensammlung
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.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Client-Server Kommunikation
ODBC (Open Database Connectivity)
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
JDBC (Java DataBase Connectivity)
Von Isabelle Spörl und Simon Schausberger
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Datenanbindung in Webapplikationen
SQLite und XML in PHP 5.
Datenbankanbindung in Web-Applikationen
Datenbankanbindung mit
Embedded SQL in Java Michael Stapf Berater Strategische Projekte
Structured Query Language
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Client-Server Kommunikation
ArcView als SDE - Client SDE Client inklusive! ArcViewGIS: ArcView GIS: Michael Jacobi ESRI GmbH ESRI EUROPEAN USER CONFERENCE.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
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
1 Prof. Dr. Andreas SchmietendorfWS06/07 Übung 3 Test der Möglichkeiten des JDBC-Interfaces.
© 2005, Rudolf Jansen JDBC Rudolf Jansen Freiberuflicher Entwickler und Autor DOAG - SIG Development.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC
JDBC Java DataBase Connectivity
Vorlesung Datenbankprogrammierung
(Structured Query Language)
 Präsentation transkript:

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? 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

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

Treiber in JDBC

JDBC-Treibertypen

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

Laden des JDBC-Treibers

Verbindung zur Datenbank: Connection Objekt erzeugen

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

Programm mit JDBC: Typischer Ablauf als Programmcode // Treiber laden Class.forName("packageName.YourDriver"); // Verbindung zum DBMS aufbauen Connection con = DriverManager.getConnection("yourURL", "user", "pwd"); // Statement erzeugen Statement stmt = con.createStatement("SELECT * FROM yourTable"); // Statement ausführen ResultSet rs = stmt.executeQuery(); // Ergebnismenge bearbeiten while (rs.next()) { // Cursor eins vor System.out.println(rs.getInt("emp_id") + rs.getString(2));} // Aufräumarbeiten rs.close(); // Ergebnismenge schließen stmt.close(); // Statement schließen con.close(); // Verbindung zum DBMS schließen

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

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

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

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.

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

ResultSet (3)

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

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

Connection Pooling

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.

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