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.

Slides:



Advertisements
Ähnliche Präsentationen
Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
Advertisements

DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Definition von Klassen in Java
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Java: Objektorientierte Programmierung
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
Java: Grundlagen der Objektorientierung
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Programmieren mit JAVA
Programmieren mit JAVA Teil V. Grafikausgabe mit JAVA, das AWT Java wurde von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber einfach zu.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Command Pattern Karola Schäuble,
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einführung in Java1 Einführung in JAVA.
Entwurfsmuster EDV Entwurfsmuster.
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.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Einführung in die Programmierung Datensammlung
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
OQL-Anfragen (1) Alle Punkte, die auf der Null-Ebene liegen: selectstruct (ex : x, ey : y) fromallePunkte wherez = 0 Rückgabetyp: bag > Alle Kanten, die.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
JDBC: JAVA Database Connectivity
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Hauptseminar Datenbanksysteme - Datenbanken und XML - Thema: Type-Checking OQL Queries In The ODMG Type Systems.
1 Teil I Datenmodelle Kapitel 6: Objektorientierte Anfragesprachen.
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Anbindung an Programmiersprachen (1/2) Prinzip und Zielsetzung der Sprachanbindungen.
Wir bauen uns eine Webapplikation!
Kollektionen in Java Aufzählungstypen, Generische Typen
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Datenbanksysteme für hörer anderer Fachrichtungen
Einfache OQL-Ausdrücke (1) Literale und Objekte können direkt konstruiert werden; gültige Ausdrücke und ihre Typen sind z.B.: "Quader77": string struct(x:1.0,
Objectives Verstehen was unterDelegate verstanden wird
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Benutzerdefinierte Datentypen (1)
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
Quelle: xkcd.com SQL Injections.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)
Objektorientierte Datenbanken zBeim vorigen Mal: yJava Data Objects zHeute: yDer Object Data Standard der ODMG-Group xKurz: ODMG-Standard yDie POET-Implementierung.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Import java.util.*; Hilfsklassen, die man eigentlich immer braucht.
verkettete Strukturen
Einführung in die Programmierung mit Java
1. Die rekursive Datenstruktur Liste 1
Tutorstunde 10.
 Präsentation transkript:

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 SQL zu vergleichen OQL-Anfrage wird als Zeichenkette angegeben OQL kann von Java aus auf zwei Wegen angesprochen werden: –Mit einer Methode der Collection -Schnittstelle –Über die generische OQLQuery -Klasse

OQL-Anbindung an Java (2) Ausschnitt aus der Collection-Schnittstelle: interface Collection { Collection query(String predicate);...} Beispiel (alle Vielflächner, die Fünfecke enthalten): Set körperMitfünfEck = (Set)meineVielflächner.query( “exists f in flächen : count(f.kanten) = 5“); Äquvalente OQL-Query: select  frommeineVielflächner whereexists f in flächen : count(f.kanten) = 5 Diese Form der Anfrage legt den select- und from-Teil der Anfrage bereits durch den Elementtyp der Kollektion fest

OQL-Anbindung an Java (3) Die Verwendung der query-Methode ist zwar sehr einfach, doch hat sie einige Nachteile: –Anfragen können nicht parametrisiert werden Ausnahme: Anfragen über dynamisch zusammengebaute Zeichenketten DBMS bekommt jedoch immer für es unbekannte Zeichenketten, die immer neu zu analysieren und optimieren sind! –Anfragen können nicht wiederverwendet werden Auch hier gilt: Wiederverwendung über Zeichenketten ist nur die halbe Lösung. Das DBMS bekommt davon nichts mit. Beispiel: –Alle Vielflächner, die Sechsecke enthalten –... –Alle Vielflächner, die n-Ecke enthalten

OQL-Anbindung an Java (4) Diese Nachteile behebt die generische OQLQuery-Schnittstelle: interface OQLQuery { public create(String query); public bind(Object parameter); public Object execute(); } –Ein OQLQuery -Objekt wird zunächst mittels einer Fabrikmethode des DBMS erzeugt. –create() erzeugt eine Anfrage wie bei der query- Methode, ohne sie jedoch auszuführen, Parameter haben die Syntax $1, $2, $3 etc. –bind() bindet aktuelle Parameter an die formalen, wobei die Reihenfolge eine Rolle spielt: beim ersten Aufruf wird das Parameterobjekt an $1 gebunden, usw. –execute () führt die Anfrage schließlich aus, und liefert eine passende Kollektion - generisch - in Form eines Objektes zurück.