Sie können eine Bean generieren, die die von der Anweisung zurückgegebene Ergebnismenge aufnehmen soll. Sie können eine SQL-Anweisung SELECT verwenden, die sich in einem beliebigen Zeichenfolgeliteral in einer Java™-Klasse befindet, die eine gültige SQL-Anweisung SELECT enthält, vorausgesetzt die Java-Klasse erscheint in einem Java-Projekt, das pureQuery unterstützt.
Vorgehensweise
Gehen Sie wie folgt vor, um eine Bean für die Ergebnismenge einer Anweisung SELECT zu generieren:
- Setzen Sie im Java-Editor den Textcursor auf die Anweisung, klicken Sie mit der rechten Maustaste auf die Anweisung und wählen Sie anschließend aus. Der Assistent pureQuery-Code aus einer SQL-Anweisung generieren wird geöffnet.
- Führen Sie die Schritte im Assistenten aus.
- Klicken Sie auf Fertig stellen, um die Bean zu generieren.
Ergebnisse
Wenn Sie keine Klauseln AS in SQL-Abfragen 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 von Ergebnismengen 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>.