Types de renvoi des méthodes de mise à jour dans l'interface Data

Cette table contient les types de renvoi de chaque méthode de mise à jour dans l'interface Data.
Tableau 1. Clé dans la table des types de renvoi
Abréviation Signification
O Objet
T classe générique, qui peut être la classe enveloppante d'un type Java primitif, un type Object simple ou un bean
Tableau 2. Types de renvoi de chaque méthode de mise à jour dans l'interface Data
  Types de renvoi
méthode de mise à jour int int[] O[] <T>
update() X      
update() with returnClass     X X
updateMany()   X    

La méthode update() retourne un entier qui indique le nombre de mises à jour de l'instruction SQL. La méthode updateMany() retourne un tableau d'entiers, chaque entier indiquant le nombre de mises à jour pour une exécution unique de l'instruction SQL.

La méthode update() prenant un élément returnClass comme paramètre est utilisée pour demander les informations sur les clés générées automatiquement. Lorsque l'élément returnClass est Object[], ce tableau contient à la fois des valeurs de clé générées automatiquement et le nombre de mises à jour. Lorsque l'élément returnClass n'est pas Object[], cette méthode renvoine une instance de returnClass contenant la première ou l'unique clé générée automatiquement et le nombre de mises à jour est supprimé.

Restriction pour le retour des objets <T>

Lorsque vous utilisez une méthode de l'interface Data, ne spécifiez pas de classe générique <T> qui soit l'une des classes <type Java primitif>.class, telles que la classe int.class.

Les informations relatives aux valeurs SQL null sont perdues chaque fois que les informations demandées par SQL sont stockées dans un type Java primitif. De plus, Java nécessite qu'une méthode générique, spécifiant une classe générique <T> de type <type Java primitif>.class, renvoie une instance de la classe d'encapsulation appropriée à ce type Java primitif.

Par exemple, Java n'autorise pas les appels de méthode tels que :
int tCount = data.queryFirst("select ...", int.class, p);
car la définition de la méthode queryFirst() est la suivante :
<T> T data.queryFirst(String sql, Class<T> returnType, Object... params);
La classe déclarée de tCount doit être Integer.
Integer tCount = data.queryFirst("select ...", Integer.class, p);

Commentaires