Aus mehreren SQL-Anweisungen können Sie Datenzugriffsobjekte oder integrierte Methoden generieren, die pureQuery-Code verwenden. Die Anweisungen können sich in SQL-Scripts in der Workbench oder in Scriptdateien im Dateisystem befinden.
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. Außerdem können Sie SQL-Anweisungen importieren, die sich in Scriptdateien befinden.
Ein SQL-Script kann mindestens eine SQL-Anweisung enthalten. Die Anzahl der SQL-Anweisungen, die in einem Script enthalten sind, bzw. die Zahl der von Ihnen ausgewählten Anweisungen bestimmt den Assistenten, mit dem Sie pureQuery-Code generieren. Informationen zu Scripts, die eine einzelne SQL-Anweisung enthalten, und zu Scripts, 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 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 SQL-Anweisungen im Script pureQuery-Code generieren wollen, wählen Sie die gewünschten Anweisungen vollständig 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 klicken Sie, wenn Sie keine Anweisungen ausgewählt haben, mit der rechten Maustaste auf eine beliebige Position im Editor und wählen Sie anschließend pureQuery-Code generieren aus.
|
Für SQL-Anweisungen, die sich in einem SQL-Script in einem für pureQuery aktivierten Java-Projekt befinden: |
- Wechseln Sie in die Java-Perspektive.
- Klicken Sie mit der rechten Maustaste auf die .sql-Datei in dem Projekt, das die SQL-Anweisungen enthält, und wählen Sie anschließend pureQuery-Code generieren aus.
|
Für SQL-Anweisungen, die sich in einem SQL-Script in einem Datenentwicklungsprojekt befinden: |
- 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, die sich in einer Scriptdatei im Dateisystem befinden: |
- 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 anschließend auf Weiter.
|
- Geben Sie Informationen auf der Seite pureQuery-Codegenerierung an und klicken Sie anschließend 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 im Script gefüllt.
- Führen Sie die folgenden Schritte aus, um SQL-Anweisungen aus einer Scriptdatei im Dateisystem zu importieren:
- Geben Sie das Abschlusszeichen 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 zu ändernden Namen klicken und anschließend den neuen Namen eingeben. Wenn Sie den Namen einer Bean ändern, wird der Standardname der ihr entsprechenden Methode mit dem neuen Bean-Namen aktualisiert.
- Optional: Wenn eine SQL-Anweisung SELECT vorliegt, prüfen und bearbeiten Sie die Bean-Informationen für die Generierung, indem Sie zuerst auf die Anweisung SELECT in der Liste und dann auf Details klicken.
- Optional: Wenn eine SQL-Anweisung CALL vorliegt, prüfen und bearbeiten Sie den zu verwendenden benutzerdefinierten Aufrufhandler in der generierten Methode. Klicken Sie hierzu zuerst auf die Anweisung CALL in der Liste und dann 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 für Linux®, UNIX® und Windows®;
DB2 für 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>.