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.