ADF-BC: ViewObject, Row, RowSet, RowSetIterator …

Das ADF-ViewObject hat in ADF-BC die Aufgabe SQL-Statements und Paramter zur Abfrage zu verwaten. Daten werden intern durch folgende Klassen verwaltet:
  • Row – Repräsentiert einen Tupel
  • RowSet – Repräsentiert eine SQL-Ergebnismenge mit Row Objekten          
Der Zugriff auf die Ergebnismenge erfolgt in der Regel über den  RowSetIterator
Bei einer Abfrage (vo.executeQuery() ) erstellt das ViewObjekt intern ein RowSet und ein RowSetIterator. Vereinfacht dargestellt würde jeder Zugriff wie folgt aussehen: vos.getRowSet().createRowSetIterator("sss").next();
                                                                                                                                    
Wer mit ADF-BC schon gearbeitet hat fragt sich nun warum können dann mit einer ViewObject Instanz die Operationen vo.next, vo. last, vo.first, usw. direkt aufgerufen werden?
Ganz einfach: die Klasse ViewObject implementiert zusätzlich das Interface RowSetIterator und stellt damit diese Mehtoden bereit. Intern erzeut das VO bei einer Abfrage einen RowSet und legt ihn intern in einr Liste mit dem Namen „_default“ ab. Greift man nun z.B. mit der Mehthode vo.first() auf das VO zu, dann wird geprüft, ob ein Default-Rowset schon vorhanden ist und delegiert den Methodenaufruf einfach an den RowSet bzw. RowSetIterator weiter. Sollte kein RowSet vorhanden sein, dann wird zuvor automatisch die ExecuteQuery-Mehtode aufgerufen und ein RowSet angelegt.
Möchte man mehrere Iteratoren oder RowSets verwalten, dann sind diese benannt durch die Mehtode vo.createRowSet(Name) bzw. rowSet.createRowSetIterator(Name) anzulegen und per vo.findRowSet(name) wieder vom ViewObject abzuholen.
Siehe auch API Doc:
Advertisements

~ von bmaier - 15. Januar 2008.

Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: