Eclipse Modeling Framework Technologies (EMFT) Java Emitter Templates (JET) zum Generieren von angepasstem Code erstellen

Die Workbench verwendet EMFT JET-Schablonen zum Generieren von pureQuery-Code. Sie können diese JET-Standardumsetzung durch eine eigene überschreiben.

Informationen zu diesem Vorgang

Soll die JET-Standardumsetzung der Workbench überschrieben werden, um pureQuery-Code zu generieren, müssen folgende Schritte ausgeführt werden: Erstellen eines EMFT JET-Projekts, Erstellen von Schablonen und Angeben der eigenen JET-Umsetzung in der Workbench.

Wichtig: Sie müssen keine XML-Dokumente als Eingabemodelle für Ihre JET-Umsetzung erstellen. Wenn Sie Ihren angepassten pureQuery-Code generieren, erstellen die Assistenten die XML automatisch. Als Basis dient dabei das Objekt, auf dem der Code basiert. Die XML ist temporär und wird nicht gespeichert.
Sie müssen jedoch das Format der XML kennen, die die Assistenten erstellen. Das Schema finden Sie im Plug-in com.ibm.datatools.javatool.transform.codegen. Sie können auch die folgenden XML-Beispieldokumente anzeigen, die auf diesem Schema basieren:

Für die Generierung des angepassten Codes verwenden Sie die Assistenten für die pureQuery-Codegenerierung, die den Schablonen entsprechen, die Sie überschreiben. Wenn Sie beispielsweise die Schablone GenTableBean.jet überschreiben, können Sie angepassten Code mithilfe des Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren generieren.

Informationen zu EMFT JET (wird jetzt als Model-To-Text JET bezeichnet) finden Sie auf der Website www.eclipse.org.

Vorgehensweise

Gehen Sie wie folgt vor, um EMFT JET-Schablonen zum Generieren angepassten Codes für pureQuery-Code zu erstellen und zu konfigurieren:

  1. Erstellen Sie ein EMFT JET-Umsetzungsprojekt. Klicken Sie mit der rechten Maustaste auf den Paketexplorer und wählen Sie Neu > Projekt aus. Wählen Sie EMFT-JET-Umsetzungen > EMFT-JET-Umsetzungsprojekt im Assistenten Neues Projekt aus.
  2. Bearbeiten Sie die Datei manifest.mf für Ihr Projekt. In dieser Datei muss angegeben sein, dass Sie die pureQuery-Standardumsetzung überschreiben.

    Soll die Klasse DBHelper verwendet werden (eine Klasse im Plug-in com.ibm.datatools.javatool.transform.codegen, die die für die Umsetzung benötigten Informationen zu der Datenbankverbindung abruft), muss in der Datei manifest.mf angegeben werden, dass eine Abhängigkeit zum Plug-in com.ibm.datatools.javatool.transform.codegen besteht. In diesem Plug-in befindet sich Dokumentation zu dieser Klasse.

    1. Klicken Sie doppelt auf die Datei manifest.mf in Ihrem Projekt, um sie zum Bearbeiten zu öffnen.
    2. Klicken Sie auf die Registerkarte Erweiterungen.
    3. Blenden Sie org.eclipse.jet.transform im Feld Alle Erweiterungen ein und wählen Sie anschließend (transform) aus.
    4. Geben Sie com.ibm.datatools.javatool.transform.codegen in das Feld überschreibt ein.
    5. Optional: Klicken Sie auf die Registerkarte Abhängigkeiten und fügen Sie das Plug-in com.ibm.datatools.javatool.transform.codegen als erforderliches Plug-in hinzu, wenn Sie die Klasse DBHelper verwenden wollen.
    6. Speichern und schließen Sie die Datei.
  3. Löschen Sie in Ihrem EMFT JET-Umsetzungsprojekt die Datei dump.jet. Sie können auch die Datei main.jet löschen, wenn Ihre Umsetzung die Datei main.jet aus der Umsetzung com.ibm.datatools.javatool.transform.codegen verwenden soll.
  4. Erstellen Sie im Verzeichnis templates in Ihrem EMFT JET-Umsetzungsprojekt Schablonen, die Schablonen in der Umsetzung com.ibm.datatools.javatool.transform.codegen überschreiben. Soll eine der pureQuery-Standardschablonen überschrieben werden, erstellen Sie eine Schablone desselben Namens. Wenn Sie eine Standardschablone nicht überschreiben, wird sie von der Workbench bei der Generierung des entsprechenden pureQuery-Codes weiterhin verwendet.

    Die folgende Tabelle enthält die Schablonen, die sich in dieser Umsetzung befinden.

    Tabelle 1. Schablonen in der Umsetzung com.ibm.datatools.javatool.transform.codegen
    Name der Schablone Unterstützte Datenbankmanagementsysteme Beschreibung
    GenProcedureHandler.jet Oracle Verwendet, wenn Code aus einer gespeicherten Prozedur generiert wird, die für eine Oracle-Datenbank ausgeführt wird.
    GenProcedureInlineJunit.jet
    • DB2 for Linux®, UNIX® and Windows®
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Testklasse für integrierte Darstellung generieren und das Kontrollkästchen JUnit-Anwendungsbeispiele generieren im Assistenten pureQuery-Code aus gespeicherter Prozedur generieren ausgewählt werden.

    Generiert ein JUnit-Anwendungsbeispiel, das integrierte Methoden zum Aufrufen der entsprechenden gespeicherten Prozedur enthält.

    GenProcedureInlineSample.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Testklasse für integrierte Darstellung generieren im Assistenten pureQuery-Code aus gespeicherter Prozedur generieren ausgewählt wird.

    Generiert eine Java™-Testklasse, die integrierte Methoden zum Aufrufen der entsprechenden gespeicherten Prozedur enthält.

    GenProcedureInterface.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Java-Schnittstelle für gespeicherte Prozedur generieren im Assistenten pureQuery-Code aus gespeicherter Prozedur generieren ausgewählt wird.

    Generiert eine Java-Schnittstelle, die mit Annotationen versehene Methoden zum Aufrufen der entsprechenden gespeicherten Prozedur enthält.

    GenProcedureInterfaceJunit.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Java-Schnittstelle für gespeicherte Prozedur generieren, das Kontrollkästchen Testklasse für Java-Schnittstelle der gespeicherten Prozedur generieren und das Kontrollkästchen JUnit-Anwendungsbeispiele generieren im Assistenten pureQuery-Code aus gespeicherter Prozedur generieren ausgewählt werden.

    Generiert ein JUnit-Anwendungsbeispiel, das mit Annotationen versehene Methoden zum Aufrufen der entsprechenden gespeicherten Prozedur enthält.

    GenProcedureInterfaceTest.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn sowohl das Kontrollkästchen Java-Schnittstelle für gespeicherte Prozedur generieren als auch das Kontrollkästchen Testklasse für Java-Schnittstelle der gespeicherten Prozedur generieren im Assistenten pureQuery-Code aus gespeicherter Prozedur generieren ausgewählt wird.

    Generiert eine Testklasse zum Testen der Implementierung der entsprechenden Schnittstelle.

    GenProcedureParmBean.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn eine gespeicherte Prozedur, die der Assistent pureQuery-Code aus gespeicherter Prozedur generieren verarbeitet, über Parameter verfügt.

    Generiert eine Bean, die Eigenschaften enthält, die die Parameter einer gespeicherten Prozedur darstellen.

    GenSampleUtil.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle

    Generiert eine Klasse, die statische Methoden enthält, die von den Testklassen bei ihrer Ausführung aufgerufen werden. Diese Methoden geben die Ergebnisse der Ausführung der Testklassen in der Konsolsicht aus.

    Diese Klasse enthält außerdem Code zum Herstellen von Datenbankverbindungen für die Testklassen.

    GenSQLBean.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn Sie im Assistenten pureQuery-Code aus einer SQL-Anweisung generieren bzw. pureQuery-Code aus SQL-Anweisungen generieren auf Fertig stellen klicken.

    Generiert pureQuery-Code, der auf dem Typ der verarbeiteten SQL-Anweisung bzw. SQL-Anweisungen basiert.

    GenTableBean.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn Sie eine Bean mit dem Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren generieren.

    Generiert eine Bean, die Eigenschaften enthält, die die Spalten einer Tabelle oder Sicht darstellen.

    GenTableInlineJunit.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Testklasse für integrierte Darstellung generieren und das Kontrollkästchen JUnit-Anwendungsbeispiele generieren im Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren ausgewählt werden.

    Generiert ein JUnit-Anwendungsbeispiel, das integrierte Methoden für den Zugriff auf das entsprechende Datenbankobjekt enthält.

    GenTableInlineSample.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Testklasse für integrierte Darstellung generieren im Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren ausgewählt wird.

    Generiert eine Java-Testklasse, die integrierte Methoden für den Zugriff auf das entsprechende Datenbankobjekt enthält.

    GenTableInterface.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Schnittstelle inklusive mit Annotationen versehener Methoden für Tabelle generieren im Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren ausgewählt wird.

    Generiert eine Java-Schnittstelle, die mit Annotationen versehene Methoden für den Zugriff auf das entsprechende Datenbankobjekt enthält.

    GenTableInterfaceJUnit.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Schnittstelle inklusive mit Annotationen versehener Methoden für Tabelle generieren, das Kontrollkästchen Testklasse für Schnittstelle inklusive mit Annotationen versehener Methoden für Tabelle generieren und das Kontrollkästchen JUnit-Anwendungsbeispiele generieren im Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren ausgewählt werden.

    Generiert ein JUnit-Anwendungsbeispiel zum Testen der Implementierung der entsprechenden Schnittstelle.

    GenTableInterfaceTest.jet
    • DB2 for Linux, UNIX and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Verwendet, wenn das Kontrollkästchen Java-Schnittstelle für Tabelle generieren und das Kontrollkästchen Testklasse für Java-Schnittstelle der Tabelle generieren im Assistenten pureQuery-Code aus Tabelle generieren oder pureQuery-Code aus Tabellen generieren ausgewählt werden.

    Generiert eine Testklasse zum Testen der Implementierung der entsprechenden Schnittstelle.

  5. Geben Sie auf der Seite mit den Benutzervorgaben für pureQuery-Umsetzungen an, welche Umsetzung die Workbench verwenden muss:
    1. Wählen Sie Fenster > Benutzervorgaben aus.
    2. Wählen Sie Datenverwaltung > SQL-Entwicklung > pureQuery > Umsetzungen aus.
    3. Wählen Sie im Feld Umsetzungs-ID den Namen Ihres EMFT JET-Umsetzungsprojekts aus.

Beispiel

Die Beispiele beschreiben XML-Musterdokumente, die als Eingabe für die pureQuery-JET-Schablonen verwendet werden.


Feedback