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 :
              
            
 
               
                -  
                   
                    ResultSettype
                     : indique la façon dont on peut manipuler les données portées par ceResultSet;
-  
                   
                    ResultSetconcurrency
                     : la capacité d'unResultSetde mettre à jour ou non les données qu'il porte ;
-  
                   
                    ResultSetholdability
                     : le comportement d'unResultSetlorsque leStatementauquel 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.