Die zweite Tabelle zeigt die Rückgabetypen für jede Methode in der Schnittstelle Data, die Sie zum Abfragen von Objektgruppen verwenden können.
Abkürzung | Bedeutung |
---|---|
I | Iterator |
L | List |
M | Map |
O | Object |
S | String |
T | generische Klasse, die eine Wrapperklasse für einen Java-Basiselementtyp oder eine Bean sein kann |
queryXxx()-Methoden | L<M<S,O>> | L<T> | M<S,O> | M<S,O>[] | <T> | <T>[] | I<M<S,O>> | I<T> |
---|---|---|---|---|---|---|---|---|
Data.queryArray() | X | |||||||
Data.queryArray() mit returnClass | X | |||||||
Data.queryList() | X | |||||||
Data.queryList() mit returnClass | X | |||||||
Data.queryIterator() | X | |||||||
Data.queryIterator() mit returnClass | X | |||||||
Data.queryFirst() | X | |||||||
Data.queryFirst() mit returnClass | X |
Beschreibung der Rückgabetypen
Wenn mehrere Zeilen zutreffen, wird der Wert aus der ersten Zeile zurückgegeben.
Jedes zugrunde liegende Datenbankobjekt ResultSet wird geschlossen.
Gibt an, dass ein Skalar oder eine Bean zurückgegeben wird. Ein Skalar könnte ein Wrapper wie z. B. Double sein oder ein Typ String (Zeichenfolge), Date (Datum) oder Timestamp (Zeitmarke).
Wenn mehrere Zeilen zutreffen, wird der Wert aus der ersten Zeile zurückgegeben.
Jedes zugrunde liegende Datenbankobjekt ResultSet wird geschlossen.
Gibt an, dass ein Objekt Iterator zurückgegeben wird, wobei jedes Element einer Zeile entspricht. Der parametrisierte Typ T muss angegeben werden.
Iteratoren in pureQuery weisen den Typ ResultIterator auf. Sie müssen Iteratoren mit der Methode ResultIterator.close() schließen, wenn Sie sie nicht mehr verwenden.
Wenn Sie eine Methode der Schnittstelle Data verwenden, geben Sie keine generische Klasse <T> an, bei der es sich um eine der <Java-Basiselementtyp>-.class-Klassen handelt, etwa int.class.
Die Informationen hinsichtlich SQL-Nullwerten gehen verloren, wenn aus SQL abgefragte Informationen in einem Java-Basiselementtyp gespeichert werden. Außerdem erfordert Java, dass eine generische Methode, die eine generische Klasse <T> von <Java-Basiselementtyp>.class angibt, eine Instanz der Wrapperklasse zurückgeben muss, die für den Java-Basiselementtyp geeignet ist.
int tCount = data.queryFirst("select ...", int.class, p);Dies deshalb, weil die Methode queryFirst() wie folgt definiert ist:
<T> T data.queryFirst(String sql, Class<T> returnType, Object... params);
Integer tCount = data.queryFirst("select ...", Integer.class, p);