Rückgabetypen für integrierte Methoden zum Abfragen speicherinterner Java-Objektgruppen

Wenn Sie Methoden in der Schnittstelle Data verwenden, um eine speicherinterne Objektgruppe abzufragen, können diese Methoden Objekte dieser Typen zurückgeben.

Die zweite Tabelle zeigt die Rückgabetypen für jede Methode in der Schnittstelle Data, die Sie zum Abfragen von Objektgruppen verwenden können.

Tabelle 1. Schlüssel zur Tabelle der Rückgabetypen
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
Tabelle 2. Rückgabetypen für jede Methode queryXxx() in der Schnittstelle Data
   
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

List<T>
Gibt an, dass ein Objekt List des Typs T zurückgegeben wird. Jedes Element entspricht einer Zeile des Abfrageergebnisses.
Alle Zeilen des Abfrageergebnisses werden gespeichert, wenn die Methode aufgerufen wird, und jedes zugrunde liegende Datenbankobjekt ResultSet wird geschlossen.
Map<String,Object>
Gibt an, dass ein Objekt Map erstellt und zurückgegeben wird. Die Kennungen der Rückkehrspalten der SQL-Anweisung werden zu den Schlüsseln der Map. Die Spaltenkennungen werden in Kleinbuchstaben umgesetzt, um eine höhere Übereinstimmung mit der allgemeinen Java-Codedarstellung zu erreichen. Die entsprechenden Spaltenwerte aus einer Zeile des Abfrageergebnisses nehmen die Werte des Objekts Map an.

Wenn mehrere Zeilen zutreffen, wird der Wert aus der ersten Zeile zurückgegeben.

Jedes zugrunde liegende Datenbankobjekt ResultSet wird geschlossen.

<T>

Gibt an, dass ein Skalar oder eine Bean zurückgegeben wird. Ein Scalar 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.

<T>[]
Gibt an, dass ein Array des Typs T zurückgegeben wird, wie z. B. Employee[], Integer[] oder String[]. Jedes Element entspricht einer Zeile des Abfrageergebnisses.
Alle Zeilen des Abfrageergebnisses werden gespeichert, wenn die Methode aufgerufen wird, und jedes zugrunde liegende Datenbankobjekt ResultSet wird geschlossen.
Iterator<T>

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.

Einschränkung für die Rückgabe von <T>-Objekten

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.

Java lässt z. B. keine Methodenaufrufe wie die folgenden zu:
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);
Die deklarierte Klasse von tCount muss Integer sein.
Integer tCount = data.queryFirst("select ...", Integer.class, p);

Feedback