Tabelle 2 zeigt die Rückgabetypen für jede Abfragemethode der Schnittstelle Data.
Abkürzung | Bedeutung |
---|---|
I | Iterator |
L | List |
M | Map |
O | Object |
RS | ResultSet |
S | String |
T | generische Klasse, die eine Wrapperklasse für einen Java™-Basiselementtyp oder eine Bean sein kann |
Rückgabetypen | |||||||||
---|---|---|---|---|---|---|---|---|---|
queryXxx()-Methoden | RS | 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.queryArray() mit RowHandler | X | ||||||||
Data.queryList() | X | ||||||||
Data.queryList() mit returnClass | X | ||||||||
Data.queryList() mit RowHandler | X | ||||||||
Data.queryIterator() | X | ||||||||
Data.queryIterator() mit returnClass | X | ||||||||
Data.queryIterator() mit RowHandler | X | ||||||||
Data.queryFirst() | X | ||||||||
Data.queryFirst() mit returnClass | X | ||||||||
Data.queryFirst() mit RowHandler | X | ||||||||
Data.queryResults() | X | ||||||||
Data.query() mit ResultHandler | X |
In der folgenden Liste werden die grundlegenden Rückgabetypen beschrieben:
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 ResultIterator.close()-Methode schließen, wenn Sie sie nicht mehr verwenden.
Wenn die angegebene SQL-Anweisung eine Abfrage ist und 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.
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);