Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Ähnliche Dokumente
Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

Kapitel 11: Anwendungsentwicklung

vs. Fehler zur Übersetzungszeit

11 Anwendungsprogrammierung

Webbasierte Informationssysteme

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Wie kommen die Befehle zum DBMS

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Client/Server-Programmierung

Datenbanken. Anwendungsentwicklung in Datenbanken: Prozedurale Spracherweiterung von SQL (z.b. PL/SQL bei Oracle)

Einführung in JDBC. IFIS Universität zu Lübeck

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Wie kommen die Befehle zum DBMS

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

10 Anwendungsprogrammierung

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Webbasierte Informationssysteme

Softwareentwicklung mit JAVA EE

Kapitel DB:VI (Fortsetzung)

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java.

Klausur Datenbanken II

JDBC. Java DataBase Connectivity

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Modifikation der Datenbank

Willkommen. Datenbanken und Anbindung

Mehr Performance mit JDBC JAVA-Anwendungen und die Oracle-Datenbank. Carsten Czarski Business Unit Database Oracle Deutschland GmbH

embedded SQL Embedded SQL wurde erstmals im SQL92- Standard definiert.

Oracle & Java HOW TO

Datenbank und Informationssysteme

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

JDBC Datenzugriff aus Java ETIS SS04

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

Beispiel: DB-Mock (1/7)

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

Zugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik

Oracle: Abstrakte Datentypen:

Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC)

Datenbanken 1 für Mediennformatiker WS ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme

Datenbankanwendungen (JDBC)

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Java und Datenbanken Ein Überblick

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Kapitel 4 Dynamisches SQL

MySQL mit MyLinux. 2/2003 Java unter Linux

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Datenbankzugriff mit JDBC

Java Database Connectivity-API (JDBC)

11. Datenbankschnittstellen

Übung: Data Warehousing und Data Mining

Datenbankzugriff mit JDBC

2. Datenbank-Programmierung

Der Einsatz von SELECT from INSERT auf dem System i

PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN

Tag 5 Inhaltsverzeichnis

6.9 Java Server Pages

Datenbanken & Informationssysteme Übungen Teil 1

Vorlesung Informatik II

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8

Übersicht. Relationale Datenbanken SQL - Structured Query Language JDBC - Java Datenbank Schnittstelle Beispielanwendung. R. Kopetzky 7.

Ziel: Verständnis für Konzepte von JDBC aufbauen

ODBC/JDBC. Vortrag im Rahmen der Projektgruppe Intelligente Datenbanken Prof. Dr. Manthey SS2003. Von. Margret Claaßen

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

SQL (Structured Query Language) Schemata Datentypen

Java und Datenbanken

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

DBS: Anwendungsprogrammierung

Kapitel DB:VI (Fortsetzung)

Kommunikation und Datenhaltung

Java-Datenbankzugriff mit JDBC

Schnittstellen zur Anbindung an Datenbanksysteme

Lambda Expressions in Java 8

Datenbanken. Autor Rainer Colgen (0171)

Tag 5 Inhaltsverzeichnis

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

Teil VIII. Weitere Datenbanksprachen

Übung3. Test der Möglichkeiten des JDBC-Interfaces. Prof. Dr. Andreas Schmietendorf 1. Übung 3

Entwicklung von Web-Anwendungen mit JAVA EE

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 11. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 7

Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können!

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Einführung in die Informatik II

Prof. Dr.-Ing. Wolfgang Lehner. Externe User Defined Functions und externe Stored Procedures

Prozedurale Datenbank- Anwendungsprogrammierung

JDBC (Stichworte) Udo Kelter

2 Anlegen und Konfigurieren von Datenbanken 35

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov F. Wenzel, L. Rudenko Lösungsblatt 6

Praktikum Datenbanksysteme

Klausur zur Vorlesung Datenbanksysteme I

Datenbanken 1. Kapitel 5: Datenbank-Anwendungsprogrammierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Transkript:

Kapitel 10 JDBC und SQLJ 1

JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit Zugriff auf SQL-Datenbanken aus Java? JDBC 1996: JDBC-Spezifikation von Sun vorgestellt Java-API für Zugriff auf SQL-Datenbanken Unterstützt dynamisches SQL -> keine Typprüfung während Übersetzung SQLJ (vgl. embedded SQL) 1997 vorgeschlagen von IBM, Oracle, Sybase, Informix und Sun Seit Ende 1998 ANSI-Standard Unterstützt statisches SQL -> Typprüfung während Übersetzung in bestimmten Umfang: auch dynamische SQL-Anweisungen 2

JDBC Architektur Architektur siehe Tafel Java Klassen und Interfaces im Paket java.sql java.sql.drivermanager Laden der Treiber und Aufbau der Verbindung zur Datenbank java.sql.connection ein Connection-Objekt repräsentiert eine Datenbankverbindung java.sql.statement Objekt für die Ausführung von SQL-Anweisungen java.sql.resultset Objekt für die Repräsentation der Ergebnis-Relation der Abfrage 3

JDBC Anfrageausführung // Aufbau der Verbindung Connection con = DriverManager.getConnection(url, benutzer, passwort); // Aufbau und Ausführung der Anfrage String retquery = select Prod-Nr, Produktart from Toepferprodukt ; Statement stmt = con.createstatement (); ResultSet rs = stmt.executequery ( retquery ); Für Retrieval-Operationen (select): stmt.executequery Für Einfüge- (insert), Update- (update), Lösch- (delete) und DDL-Operationen (create table, drop table): stmt.executeupdate... String insquery = insert into Toepferprodukt values (50071, Vase ) ; Statement stmt = con.createstatement (); int numberrows = stmt.executeupdate ( insquery ); 4

JDBC Auswertung des Anfrageergebnis Auswertung des Result-Set: Navigation auf der Ergebnismenge mit Referenz (~Cursor in PL/SQL) Zugriff auf Spalten des ResultSet mit get<type> -Methoden... String retquery = select Prod-Nr, Produktart from Toepferprodukt ; Statement stmt = con.createstatement (); ResultSet rs = stmt.executequery ( retquery ); //entspricht //declare cursor c is select ; in PL/SQL System.out.println( Produkt-Nr Produktart ); try { while (rs.next ()) { int i = rs.getint(1); String s = rs.getstring(2); System.out.println (i + + s); } } catch (SQLException exc) { // Fehlerbehandlung System.out.println( SQL-Fehler: + exc); } Cursor rs steht am Anfang VOR dem ersten Tupel, nach rs.next auf 1. Tupel Spalten sind von 1 bis n nummeriert 5

JDBC Anfragen mit Parameter Statt Statement wird das Objekt PreparedStatement der Klasse Connection verwendet, wenn Parameter erst zur Laufzeit ermittelt werden können: String insquery = insert into Toepferprodukt values (?,?) ; PreparedStatement stmt = con.preparestatement (insquery); // Setzen der Werte stmt.setint ( 1, 50071) stmt.setstring ( 2, Vase ); int numberrows = stmt.executeupdate ( insquery ); Weitere Möglichkeiten in JDBC CallableStatement für den Aufruf von Stored Procedures Pooling von Connection-Objekten, verteilte Transaktionen, verbessertes Cursor-Scrolling etc. in JDBC 2 Weitere Datentypen, Unterstützung von Savepoints in Transaktionen etc. in JDBC 3 6

SQLJ Direkte Einbettung von SQL-Anweisungen in Java Code SQLJ-Anweisungen werden mittels Pre-Compiler in Java-Code übersetzt Vgl. embedded SQL Eingebetete SQL-Anweisungen werden durch #sql gekennzeichnet: #sql { <SQL-Anweisungen> } Ergebnistupel können mit einem Iterator durchlaufen werden (Iterator entspricht Cursor in PL/SQL) Host-Variablen werden durch Doppelpunkt (:name) gekennzeichnet... try{ #sql iterator PrdItr (int ProdNr, String ProdArt); #sql PrdItr = { select Prod-Nr, Produktart from Toepferprodukt }; while (PrdItr.next ()) { System.out.println(PrdItr.ProdNr()+ +PrdItr.ProdArt())}... }... 7