Sie können aus mehreren SQL-Anweisungen Datenzugriffsobjekte oder integrierte Methoden generieren, die pureQuery-Code verwenden. Die Anweisungen können sich in SQL-Scripts in der Workbench befinden oder in Scriptdateien des Dateisystems.
Informationen zu diesem Vorgang
In Abhängigkeit von Ihrer Lizenzkonfiguration ist diese Funktionalität möglicherweise nicht verfügbar. Sie können mit SQL-Scripts arbeiten, die sich in für pureQuery aktivierten Java-Projekten in der Java-Perspektive und in Datenentwicklungsprojekten in der Perspektive SQL- und Routinenentwicklung befinden.
Sie können mit SQL-Scripts arbeiten, die im SQL- und XQuery-Editor geöffnet sind und Sie können SQL-Anweisungen, die sich in Scriptdateien befinden, importieren.
Ein SQL-Script kann mindestens eine SQL-Anweisung enthalten. Die Anzahl SQL-Anweisungen, die ein Script enthält oder die Sie auswählen, bestimmt, welchen Assistenten Sie verwenden, um pureQuery-Code zu generieren. Informationen zu Scripts, die eine einzelne SQL-Anweisung enthalten oder in denen Sie eine einzelne SQL-Anweisung auswählen, finden Sie in
pureQuery-Code aus einzelnen SQL-Anweisungen generieren.
Sie können diesen Prozess verwenden, um pureQuery-Code nur für gültige Anweisungen SELECT, INSERT, UPDATE, DELETE oder CALL zu generieren. Wenn bei einer JDBC-Methode prepareStatement() einer SQL-Anweisung Fehler auftreten, wird ein Nachrichtenfeld mit der zurückgegebenen Fehlernachricht angezeigt.
Vorgehensweise
Gehen Sie wie folgt vor, um pureQuery-Code aus mehreren SQL-Anweisungen zu generieren:
- Öffnen Sie den Assistenten pureQuery-Code aus mehreren SQL-Anweisungen generieren, indem Sie eine der folgenden Schrittfolgen ausführen:
Option |
Bezeichnung |
Für SQL-Anweisungen in einem SQL-Script, das im SQL- und XQuery-Editor geöffnet ist: |
- Optional: Wenn Sie nur für einige der SQL-Anweisungen des Scripts pureQuery-Code generieren wollen, wählen Sie jede Anweisung in ihrer Gesamtheit aus. Wenn Sie keine Anweisungen auswählen, wird für alle SQL-Anweisungen pureQuery-Code generiert.
- Klicken Sie mit der rechten Maustaste auf die ausgewählten SQL-Anweisungen, oder wenn Sie keine Anweisungen ausgewählt haben, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle innerhalb des Editors und wählen Sie anschließend pureQuery-Code generieren aus.
|
Für SQL-Anweisungen in einem SQL-Script in einem für pureQuery aktivierten Java-Projekt: |
- Wechseln Sie in die Java-Perspektive.
- Klicken Sie mit der rechten Maustaste auf die .sql-Datei, die die SQL-Anweisungen enthält und wählen Sie anschließend pureQuery-Code generieren aus.
|
Für SQL-Anweisungen in einem SQL-Script in einem Datenentwicklungsprojekt: |
- Wechseln Sie in die Perspektive SQL- und Routinenentwicklung.
- Erweitern Sie den Ordner SQL-Scripts im Projekt.
- Klicken Sie mit der rechten Maustaste auf das Script, das die SQL-Anweisungen enthält, und wählen Sie anschließend pureQuery-Code generieren aus.
|
Für SQL-Anweisungen in einer Scriptdatei des Dateisystems: |
- Wählen Sie aus.
- Erweitern Sie im Assistenten Neu den Knoten Daten, wählen Sie
pureQuery-Schnittstelle inklusive mit Annotationen versehener Methoden aus und klicken Sie auf Weiter.
|
- Geben Sie auf der Seite für die pureQuery-Codegenerierung Informationen ein und klicken Sie auf Weiter. Wenn Sie den Assistenten über ein SQL-Script in der Workbench geöffnet haben, wird die Liste
Anweisungen auf der Seite SQL-Anweisungen mit den SQL-Anweisungen des Scripts gefüllt.
- Führen Sie die folgenden Schritte aus, um SQL-Anweisungen aus einer Scriptdatei des Dateisystems zu importieren:
- Geben Sie das Abschlussprogramm an, das die SQL-Anweisungen in der Datei verwenden.
- Klicken Sie auf Importieren und wählen Sie anschließend die Scriptdatei aus.
- Optional: Ändern Sie den Namen einer Bean oder einer Methode in der Liste, indem Sie doppelt auf den Namen klicken, den Sie ändern wollen, und den neuen Namen eingeben. Wenn Sie den Namen einer Bean ändern, wird der Standardname ihrer entsprechenden Methode mit dem neuen Namen der Bean aktualisiert.
- Optional: Wenn Sie eine SQL-Anweisung SELECT haben, prüfen und bearbeiten Sie die zu generierenden Bean-Informationen, indem Sie in der Liste auf die Anweisung SELECT klicken und anschließend auf Details klicken.
- Optional: Wen Sie eine SQL-Anweisung CALL haben, prüfen und bearbeiten Sie den in der generierten Methode für den Aufruf zu verwendenden angepassten Handler, indem Sie in der Liste auf die Anweisung CALL klicken und anschließend auf
Details.
- Führen Sie die Schritte im Assistenten aus. Drücken Sie die Taste F1, um Informationen zu den Feldern im Assistenten anzuzeigen.
- Klicken Sie auf Fertig stellen, um die von Ihnen angegebenen Dateien zu generieren.
Ergebnisse
Beim Generieren von pureQuery-Code erstellt die Workbench eine Bean, die Sie zum Zugriff auf Ihre Datenbank verwenden können. Sie können beispielsweise Code aus einer Anweisung UPDATE oder aus einer Anweisung SELECT generieren. Beim Generieren von Code aus einer Anweisung SELECT erstellt die Workbench eine Bean, die die Abfrageergebnisse aufnehmen kann.
Wenn Sie keine Klauseln AS in Anweisungen SELECT verwenden, die Joins oder Union-Verknüpfungen erzeugen, oder die berechnete Spalten enthalten, können die Abfrageergebnisse Spalten enthalten, deren Namen möglicherweise nicht eindeutig sind. Ob die Workbench in der Lage ist, dieses Problem beim Generieren einer Bean zum Darstellen der Abfrageergebnisse zu lösen, hängt davon ab, welchen Datenbanktyp Ihre Anwendung verwendet.
- DB2 for Linux, UNIX, and Windows;
DB2 for z/OS;
Informix Dynamic Server: Die Workbench verwendet die Annotation @Column für Eigenschaften, die Spalten zugeordnet sind, die denselben Namen wie mindestens eine andere Spalte aufweisen.
Angenommen, Ihre Anwendung führt die
folgende einfache Abfrage aus:
select a.col1, b.col1 from a, b where a.id=b.id;
Die Methoden
set() für die entsprechenden Eigenschaften in den Beans, die die
Abfrageergebnisse aufnehmen, benötigen die Annotationen
@Column, die den Namen der Tabelle angeben, in der die
beiden Spalten
id auftreten:
public class JoinExample{
private int a_id;
private int b_id;
@Column (name="id", table="a")
public void setA_id (int a_id)
{
this.a_id = a_id;
}
public int getA_id ()
{
return a_id;
}
@Column (name="id", table="b")
public void setB_id (int b_id)
{
this.b_id = b_id;
}
public int getB_id ()
{
return b_id;
}
}
- Oracle: Die Workbench verwendet nicht das Attribut table der Annotation @Column, um problematischen Spalten Eigenschaften in der Bean zuzuordnen. Verwenden Sie für die Zuordnung eine der folgenden Möglichkeiten:
- Verwenden Sie die Klausel AS in der Anweisung SELECT, um den Spalten in den Abfrageergebnissen eindeutige Namen zuzuordnen.
- Verwenden Sie eine RowHandler-Klasse, die mit Spalten in Abfrageergebnissen anhand von Indexzahlen anstatt Spaltennamen arbeiten kann. Informationen hierzu finden Sie im Abschnitt zur
Schnittstelle RowHandler <ROW>.