Rückgabetypen für Aktualisierungsmethoden in der Schnittstelle 'Data'

In der folgenden Tabelle werden die Rückgabetypen für jede Aktualisierungsmethode in der Schnittstelle Data angezeigt.
Tabelle 1. Schlüssel zur Tabelle der Rückgabetypen
Abkürzung Bedeutung
O Objekt
T Generische Klasse, die eine Wrapperklasse für einen Java-Basiselementtyp, einen einfachen Objekttyp oder eine Bean ist
Tabelle 2. Rückgabetypen für jede Aktualisierungsmethode in der Schnittstelle 'Data'
  Rückgabetypen
Aktualisierungsmethode int int[] O[] <T>
update() X      
update() mit returnClass     X X
updateMany()   X    

Die Methode update() gibt eine ganze Zahl zurück, die den Aktualisierungszähler für die SQL-Anweisung angibt. Die Methode updateMany() gibt ein Array mit ganzen Zahlen zurück, wobei jede ganze Zahl den Aktualisierungszähler für eine einzelne Ausführung der SQL-Anweisung angibt.

Die Methode update(), die returnClass als Parameter einsetzt, wird zum Anfordern von Informationen zu automatisch generierten Schlüsseln verwendet. Wenn returnClass eine Object[]-Instanz ist, enthält dieses Array die automatisch generierten Schlüsselwerte und einen Aktualisierungszähler. Wenn returnClass keine Object[]-Instanz ist, gibt diese Methode eine Instanz von returnClass zurück, die den ersten oder nur den automatisch generierten Schlüssel enthält, und der Aktualisierungszähler wird verworfen.

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