Le résultat d’une requête est stocké dans un objet de type
ResultSet. Là encore, ce type est une interface, et le pilote de la base de données nous renvoie une instance de classe qui implémente cette interface.
Les objets
ResultSet peuvent paraître assez simples à manipuler de prime abord, et de fait ils le sont. Toutefois, cette simplicité masque certaines subtilités de leur fonctionnement que nous verrons en détails.
Les objets
ResultSet peuvent exposer différents comportements vis à vis de leurs fonctionnalités. Ces comportements sont de trois ordres :
-
ResultSet
type
: indique la façon dont on peut manipuler les données portées par ce
ResultSet ;
-
ResultSet
concurrency
: la capacité d'un
ResultSet de mettre à jour ou non les données qu'il porte ;
-
ResultSet
holdability
: le comportement d'un
ResultSet lorsque le
Statement auquel il est attaché est fermé ou validé.
Notons que l'interface
Statement expose des
getters
pour les trois propriétés
resultSetType,
resultSetConcurrency et
resultSetHoldability, de sorte qu'il est possible d'interroger un objet
Statement construit avec les valeurs par défaut.
Voyons tous ces points en détails.