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



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

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

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Oracle: Abstrakte Datentypen:

2. Datenbank-Programmierung

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Klausur Interoperabilität

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

3. Stored Procedures und PL/SQL

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

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

Innere Klassen in Java

Stand: Adressnummern ändern Modulbeschreibung

Browsereinstellungen für moneycheck24 in Explorer unter Windows

Java: Vererbung. Teil 3: super()

Objektorientierte Programmierung

MCRServlet Table of contents

Info-Veranstaltung zur Erstellung von Zertifikaten

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Inventur. Bemerkung. / Inventur

Mächtigkeit von WHILE-Programmen

Lehrer: Einschreibemethoden

Einführung in die Programmierung

Import und Export von Übergängern

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Gesicherte Prozeduren

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Professionelle Seminare im Bereich MS-Office

Statuten in leichter Sprache

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Webalizer HOWTO. Stand:

ZAHLUNGSAVIS. Im Zahlungsprogrammteil automatisch erstellen

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

PVS Grobkonzept: Strukturelle und funktionale Erweiterungen bei der Verwaltung der Arbeitszeit und der organisatorischen Zuordnung

MARCANT - File Delivery System

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Kontrollstrukturen und Funktionen in C

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

ObjectBridge Java Edition

DB2 Codepage Umstellung

Wärmebildkamera. Arbeitszeit: 15 Minuten

WPF Steuerelemente Listbox, ComboBox, ListView,

Allgemeines zu Datenbanken

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Anhang. 3. Was denken Sie: An wen richtet sich das Lernprogramm für Psycholinguistik? zu nicht nicht zu

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

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

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Modellierung und Programmierung 1

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Allgemeine Anleitung Treiber für CP2102

Zählen von Objekten einer bestimmten Klasse

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Umstellung von Inlandssammelaufträgen in SEPA-Sammelaufträge

Kopfzeile. Inhaltsverzeichnis

Testen mit JUnit. Motivation

Einführung in die Programmierung

Datenaufbereitung in SPSS. Daten zusammenfügen

Konzentration auf das. Wesentliche.

Diana Lange. GENERATIVE GESTALTUNG Arten des Zufalls

affilinet_ Flash-Spezifikationen

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Wir machen neue Politik für Baden-Württemberg

Hyperlink-Erstellung in InDesign für

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Elternzeit Was ist das?

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Erfahrungen mit Hartz IV- Empfängern

Leistungsgesteuerte Terminplanung

5. Tutorium zu Programmieren

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Datenbanken Microsoft Access 2010

Professionelle Seminare im Bereich MS-Office

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

IBM SPSS Statistics Version 23. Einführung in Installation und Lizenzierung

2.5.2 Primärschlüssel

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SS 2014 Torsten Schreiber

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Evident VDDS-Anbindung von MIZ

Low-Level Client-Server Architektur

GITS Steckbriefe Tutorial

Computeranwendung und Programmierung (CuP)

desk.modul : ABX-Lokalisierung

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Meinungen zum Sterben Emnid-Umfrage 2001

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Transkript:

SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: - Java Klassen als echte SQL-Datentypen Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 4/38 1

Was ist SQLJ? (2) Entstanden durch den Zusammenschluss führender Datenbankhersteller wie: Oracle, Sybase, SUN, IBM, Informix, Micro Focus, Microsoft, XDB, Cloudscape und Compaq/Tandem, sowie JavaSoft. Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 5/38 Grundlagen Entspricht Richtlinien des ANSI/ISO Embedded SQL Standard Aufbau eines SQLJ-Statement im Java- Code: #sql {SELECT * FROM bsp_tabelle}; Source-Datei hat die Endung *.sqlj Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 7/38 2

Abgrenzung zu JDBC // SQLJ int n; #sql { INSERT INTO Gehalt VALUES (:n)}; // JDBC int n; Statement stmt = conn.preparestatement( INSERT INTO Gehalt VALUES (?) ); stmt.setint(1,n); stmt.execute(); stmt.close(); Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 8/38 SQLJ Pre-Compiler Übersetzungsvorgang des Pre-Compiler: Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 9/38 3

Datentypen Abbildung der Datentypen: Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 10/38 Host-Variablen und Host-Ausdrücke Variablen oder beliebige Java Ausdrücke Voraussetzung Datentypen sind äquivalent Syntax: - :variable1 oder - :(variable1 + variable2) Richtungen der Datenüberübertragung -IN - OUT und -INOUT Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 11/38 4

Iteratoren Host-Variablen erlauben nur Austausch von einfachen Datenelementen. Für Ergebnismengen benötigt man Iteratoren Es wird unterschieden zwischen - Benannten Iteratoren und - Positions-Iteratoren Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 12/38 Benannte Iteratoren Name einer Spalte wird Attributname in SQL-Statement zugeordnet Namen müssen identisch sein, sonst ist keine Zuordnung möglich Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 13/38 5

Beispiel: Benannte Iteratoren #sql public iterator Person_Iterator(int pid, String name, String forename); public void showallstoredpersons() { Person_Iterator listofpersons; #sql listofpersons = { SELECT pid, name, forename FROM person }; while (listofpersons.next()) { System.out.println("("+listOfPersons.pid()+", "+listofpersons.name()+", "+listofpersons.forename()+")"); } listofpersons.close(); } Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 14/38 Positions-Iteratoren Definition legt nur Datentypen fest, nicht die Namen Reihenfolge der Datentypen muss mit der Spaltenreihenfolge in der SQL-Anfrage übereinstimmen Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 15/38 6

Beispiel: Positions-Iteratoren #sql public iterator listofperson(int, String, String); public void showallstoredpersons() { Person listofpersons; int pid; String surname; String forename; #sql listofpersons = { SELECT pid, surname, forename FROM person }; while (!listofpersons.endfetch()) { #sql { FETCH :listofpersons INTO :pid, :surname, :forename }; System.out.println("("+pid+", "+surname+", "+forename+")"); } listofpersons.close(); } Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 16/38 Verbindungskontext Wie wird zugegriffen Auf welche Datenbank wird verbunden Identisch zu JDBC Für jedes SQLJ-Statement kann ein eigener Verbindungskontext erstellt werden Wenn nichts explizit angegeben ist wird die Default-Verbindung verwendet Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 17/38 7

Ausführungskontext Zu jedem Verbindungskontext gehört mindestens ein Ausführungskontext Der Ausführungskontext ermöglicht die Abfrage von: - Warnungen -Fehler - Statusmeldungen Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 18/38 Multithreading Zwei Möglichkeiten: - Für jeden Thread wird ein eigener Verbindungskontext erstellt. - Für jeden Thread wird ein eigener Ausführungskontext erstellt. Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 19/38 8

Aufruf von Stored-Procedures Stored-Procedures laufen lokal auf einem Datenbanksystem Sie werden mit dem Befehl CALL aufgerufen. Beispiel: #sql {CALL bsp_prozedur (:variable1)}; Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 20/38 Aufruf von Stored-Procedures (2) Zuweisung eines Rückgabewertes mit dem Befehl VALUES. Beispiel: int x; #sql x = {VALUES (bsp_funktion(2002))}; Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 21/38 9

Transaktionsverwaltung Es wird unterschieden zwischen manueller und automatischer Transaktionsverwaltung. Wird über den Parameter AutoCommit im Verbindungskontext definiert. Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 22/38 SQLJ - JDBC Vorteile SQLJ: - Übersichtlicher Code - Fehler wird nicht erst zur Laufzeit gefunden Nachteile SQLJ: - Grosse Laufzeitbibliothek (ca. 200-500 KByte) - Nur statische SQL-Statements Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 36/38 10

Fazit Mit SQLJ werden die Nachteile von JDBC entschärft SQLJ aber keinesfalls vollständiger Ersatz für JDBC, sondern Ergänzung Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 37/38 Ausblick SQLJ verbessert die Datenbankanbindung mit Java und schafft daher eine gute Grundlage für viele Business Applikationen, die heute und in der Zukunft eine signifikante Rolle im IT-Markt ausmachen. Universität Stuttgart Abteilung Anwendersoftware Marcel Keller 38/38 11