Dynamische und statische Objekttypen für den JDBC DMS

DataObjects der Spezifikation Service Data Object (SDO) 1.0 können statische und dynamische Typen verwenden. Wenn Sie wissen, dass ein bestimmtes DataGraph-Schema alle Anforderungen Ihrer Anwendungsabfrage erfüllt, können Sie statischen SDO-Code generieren, um unter Umständen eine bessere Laufzeitleistung zu erzielen.

Beim dynamischen Typ werden die Informationen, die die Form eines DataGraph definieren, in der Laufzeit erzeugt. Das DataGraph-Schema wird vom JDBC Data Mediator Service (DMS) aus den bei Erstellung vorliegenden Metadaten erstellt. Der JDBC DMS benötigt für das Erzeugen eines DataGraph des dynamischen Typs nur die Metadaten und eine Verbindung zu einer Datenquelle. Das ist die Standardmethode für die Erstellung des JDBC DMS.

Wenn Sie die Form des DataGraph bereits während der Entwicklung kennen, können Sie einen Codegenerator verwenden, um streng typisierte Schnittstellen (API-Code für statische Daten) zu erstellen, die die Navigation im DataGraph vereinfachen, eine verbesserte Fehlerprüfung während der Kompilierung und eine bessere Leistung bieten. Weitere Informationen zu den Metamodellen, aus denen Sie statischen SDO-Code generieren können, finden Sie in der Einführung der Spezifikation SDO 1.0. Die Einführung enthält eine Liste der Spezifikationsanforderungen, in der Sie eine kurze Erläuterung zur Unterstützung der API für statische Daten finden können. Beachten Sie, dass die dynamische API auch bei Verwendung streng typisierter DataObjects weiterhin verfügbar ist.

Mit dem Codegenerator können Sie Klassen für jeden DataObject-Typ im DataGraph erstellen. Jede dieser Klassen enthält getter()- und setter()-Methoden für die einzelnen Eigenschaften des DataObject. Ein Client kann somit typengeprüfte Methoden aufrufen und muss nicht den Namen einer Eigenschaft übergeben. Die generierten Typen müssten beispielsweise nicht die Eigenschaft DataObject.get("CUSTFIRSTNAME") aufrufen, sondern können eine Methode DataObject.getCustFirstName() enthalten. Wenn Sie auf ein zugehöriges DataObject zugreifen, gibt ein Accessor ein typkonsistentes DataObject und kein reguläres DataObject zurück. DataObject.get("Customers_Orders") gibt beispielsweise ein DataObject zurück, DataObject.getOrders() jedoch ein Objekt vom Typ "Order".

Falls Sie das statische Typkonzept zusammen mit dem JDBC DMS verwenden möchten, müssen Sie für die create-Methoden der JDBCMediatorFactory-Klasse die Metadaten, eine Verbindung zur Datenquelle und das DataGraph-Schema bereitstellen. In diesem Fall verwendet der JDBC DMS die Metadaten nicht zur Bestimmung der Form des DataGraph, sondern entnimmt aus den Metadaten Informationen zur Back-End-Datenquelle und zu ihrer Abbildung in einem DataGraph.

Wenn Sie streng typisierte DataObjects verwenden, müssen Sie unbedingt sicherstellen, dass die Abfrage dem DataGraph-Schema entspricht. Die Abfrage muss nicht alle Datenobjekte und Eigenschaften im Schema füllen. Sie darf jedoch keine Datenobjekte oder Eigenschaften zurückgeben, die nicht im DataGraph-Schema definiert sind. Ein DataGraph-Schema könnte beispielsweise die DataObjects Customer und Order definieren. Es wäre zulässig, dass eine Abfrage nur Customer-Objekte zurückgibt. Das Customer-Objekt könnte auch die ID, Name und Address definieren. Eine Abfrage, die keine Adresse zurückgibt, wäre gültig. Der Wert der Eigenschaft "address" ist in diesem Fall null und wird in der Datenbank nicht aktualisiert, wenn die Methode applyChanges() aufgerufen wird. In unserem Beispiel konnte die Abfrage die Eigenschaft Phone nicht zurückgeben, da diese Eigenschaft nicht für das Objekt Customer definiert war. Wenn eine Abfrage versucht, eine nicht definierte Eigenschaft zurückzugeben, meldet DMS eine Ausnahme wegen ungültiger Metadaten.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_dotypes
Dateiname:rdat_dotypes.html