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.