Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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

2 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

3 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

4 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.


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen