Workbench zum Konfigurieren der Unterstützung für statisches SQL in pureQuery-Code verwenden

Nachdem Sie Schnittstellen erstellt haben, die mit Annotationen versehene Methoden deklarieren, können Sie damit beginnen, DB2-Pakete zu erstellen und zu konfigurieren, die die statisch auszuführenden SQL-Anweisungen enthalten.

Vorbereitende Schritte

Sie können SQL nicht statisch ausführen, wenn Sie eine Oracle-Datenbank verwenden.

Bevor Sie eine Bindeoperation ausführen, müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind.
  • Die Gruppe der Zugriffsrechte des Benutzers, der das pureQuery-Dienstprogramm StaticBinder aufruft, muss eine der folgenden Berechtigungen enthalten:
    • Berechtigung SYSADM
    • Berechtigung DBADM
    • Wenn das Paket nicht vorhanden ist, das Zugriffsrecht BINDADD und eines der folgenden Zugriffsrechte:
      • Zugriffsrecht CREATEIN
      • DB2 für z/OS: Berechtigung PACKADM für die Objektgruppe oder für alle Objektgruppen
      • DB2 Database für Linux®, UNIX® und Windows®: Berechtigung IMPLICIT_SCHEMA für die Datenbank, wenn der Schemaname des Pakets nicht vorhanden ist
    • DB2 für z/OS: Wenn das Paket vorhanden ist, das Zugriffsrecht BIND für das Paket
    • DB2 Database für Linux, UNIX und Windows (wenn das Paket vorhanden ist):
      • Zugriffsrecht ALTERIN für das Schema
      • Zugriffsrecht BIND für das Paket
  • DB2 für Linux, UNIX und Windows: Der Benutzer benötigt auch alle erforderlichen Zugriffsrechte, um beliebige statische SQL-Anweisungen in der Anwendung zu kompilieren. Zugriffsrechte, die Gruppen erteilt werden, werden nicht für die Berechtigungsprüfung von statischen Anweisungen verwendet. Wenn der Benutzer über die Berechtigung SYSADM verfügt, aber keine expliziten Zugriffsrechte für das Abschließen der Bindung hat, erteilt der DB2-Datenbankmanager automatisch die explizite Berechtigung DBADM.

Vorgehensweise

Gehen Sie wie folgt vor, um die Workbench zum Konfigurieren der Unterstützung für statisches SQL in pureQuery-Code zu verwenden:

  1. Wenn Sie SQL-Anweisungen aus mehreren Schnittstellen in einem separaten DB2-Paket gruppieren wollen, erweitern Sie eine dieser Schnittstellen durch eine weitere Schnittstelle.
  2. Bearbeiten Sie die Datei Default.genProps, indem Sie die Objektgruppe, die Stammnamen und die Versionen der DB2-Pakete angeben, die Sie erstellen wollen.
  3. Zeigen Sie die SQL-Anweisungen in Ihren Schnittstellen und die zugehörigen Informationen an.
    Wenn Sie Ihren Projektordner im Paketexplorer oder eine beliebige Datei in Ihrem Java™-Projekt auswählen, wird die Sicht 'SQL Outline' gefüllt.

    Wenn die Ansicht nicht geöffnet ist, wählen Sie Window > Sicht anzeigen > Andere aus. Wählen Sie Andere > SQL Outline im Fenster Sicht anzeigen aus.

    In der Ansicht werden nur nicht gebundene Pakete angezeigt, weil Sie noch keine Bindeoperation ausgeführt haben.

  4. Bearbeiten Sie die Datei Default.bindProps, indem Sie über die Angabe von Optionen festlegen, wie SQL-Anweisungen in DB2-Paketen gebunden werden.
  5. Binden Sie die SQL-Anweisungen, die sich in Schnittstellen in Ihrem Java-Projekt befinden, indem Sie einen der folgenden Schritte ausführen:
    • Zum Binden aller Schnittstellen in einem Java-Projekt klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie pureQuery > pureQuery-Anwendungen binden aus.
    • Zum Binden mindestens einer Schnittstelle in einem Java-Projekt klicken Sie mit der rechten Maustaste auf eine Auswahl von Schnittstellen und wählen Sie pureQuery > Binden aus.
    Das Fenster Verbindung auswählen wird angezeigt, in dem Sie die DB2-Datenbank auswählen können, die Sie verwenden wollen. Sie können eine Datenbank auswählen, die Ihrem Java-Projekt nicht zugeordnet ist.
    Achtung: Sie können keine Bindeoperation ausführen, wenn Sie offline arbeiten. Sie müssen mit der DB2-Datenbank verbunden sein, für die Sie eine Bindung ausführen wollen.
  6. Zeigen Sie die DB2-Pakete und die darin enthaltenen SQL-Anweisungen an. Wählen Sie den Projektordner aus und prüfen Sie die Seite SQL in der Sicht 'SQL Outline', um sicherzustellen, dass Sie die gewünschten DB2-Pakete erstellt haben.

    Wenn Sie überprüfen wollen, ob Sie das Paket in der Datenbank erstellt haben, müssen Sie in der Sicht 'SQL Outline' mit der rechten Maustaste auf das Paket klicken und Im Datenquellenexplorer anzeigen auswählen.

    Sie haben die Möglichkeit, DB2-Pakete mit anderen Optionen erneut zu erstellen oder neue Versionen von ihnen zu erstellen, bevor Sie Ihren pureQuery-Code ausführen.

  7. Führen Sie Ihre Anwendung so aus, dass sie gebundene SQL-Anweisungen statisch ausführt.

Ergebnisse

Die Sicht 'SQL Outline' kann beim Beheben von Problemen im Zusammenhang mit Ihren SQL-Anweisungen hilfreich sein.

Wenn Sie mindestens eine SQL-Anweisung in einer Schnittstelle modifizieren oder einer Schnittstelle Anweisungen hinzufügen: Sie können die DB2-Pakete ändern oder neue Versionen der DB2-Pakete erstellen, die diese Anweisungen enthalten.

Wenn Sie Ihre Anwendung in einer JAR-Datei implementieren wollen: In der Workbench wird die defaultOptions-Zeile in der Datei Default.bindProps auf alle Schnittstellen in Ihrem Projekt angewendet, mit Ausnahme der Schnittstellen, für die Sie in dieser Datei separat Optionen angeben. Bevor Sie Ihre Anwendung in einer JAR-Datei implementieren, müssen Sie sicherstellen, dass die Datei Default.bindProps für jede Schnittstelle, die zu bindende SQL-Anweisungen enthält, einen Eintrag aufweist. Das pureQuery-Dienstprogramm StaticBinder, das Sie über eine Befehlszeile in der Datenbank, in der Sie Ihre Anwendung implementieren, ausführen müssen, wirkt sich nur auf die in der Datei Default.bindProps aufgelisteten Schnittstellen aus.

Gehen Sie wie folgt vor, um die Schnittstellen hinzuzufügen:
  1. Klicken Sie im Ordner pureQueryFolder in Ihrem Projekt mit der rechten Maustaste auf die Datei Default.bindProps und wählen Sie pureQuery > Einträge hinzufügen oder entfernen aus.
  2. Fügen Sie im Fenster Einträge hinzufügen oder entfernen alle erforderlichen Schnittstellen hinzu.

Wenn Sie davon ausgehen, dass Sie die Stammpaketnamen, die Objektgruppen-IDs und die Versionen für Ihre DB2-Pakete nach der Implementierung der Anwendung gegebenenfalls überarbeiten müssen, müssen Sie außerdem sicherstellen, dass Ihre Datei Default.genProps für jede Schnittstelle, auf die die defaultOptions-Zeile angewendet wird, einen Eintrag enthält. Sie können dieser Datei außerdem Einträge hinzufügen, indem Sie mit der rechten Maustaste auf die Datei klicken und das Fenster Einträge hinzufügen oder entfernen verwenden.


Feedback