Partie III
Langages et outils
302
© Éditions Eyrolles
Distinguons l’instruction SELECT qui génère un curseur statique (objet Resultset utilisé
sans option particulière) de celle qui produit un curseur navigable ou modifiable (objet
Resultset employé avec des options disponibles depuis la version 2 de JDBC).
Curseurs statiques
Le code suivant (SELECTstatique.java) extrait les avions de la compagnie 'Air France'
par l’intermédiaire du curseur curseurJava. Notez l’utilisation des différentes méthodes
get pour récupérer des valeurs issues de colonnes.
Tableau 8-16 Méthodes principales de l’interface ResulSet
Méthode
Description
boolean next()
Charge l’enregistrement suivant en retournant true, renvoie
false lorsqu’il n’y a plus d’enregistrement suivant.
void close()
Ferme le curseur.
getxxx(int)
Récupère, au niveau de l’enregistrement, la valeur de la
colonne numérotée de type xxx. Exemple : getInt(1), getString(1), getDate(1), etc., pour récupérer la valeur de la première colonne.
updatexxx(…)
Modifie, au niveau de l’enregistrement, la valeur de la colonne
numérotée de type xxx. Exemple : updateInt(1,i),
updateString(1,nom), etc.
ResultSetMetaData getMetaData() Retourne un objet ResultSetMetaData correspondant au curseur.
Object getObject(String)
Retourne la valeur de la colonne désignée par le paramètre
dans une variable Java de type adéquat.
Tableau 8-17 Extraction de données dans un curseur statique
Code Java
Commentaires
try {…
Statement etatSimple = cx.createStatement();
Création de l’état.
=
("SELECT immat, cap FROM Avion
WHERE comp = (SELECT comp FROM Compagnie WHERE nomComp='Air France')");
Création et chargement du curseur.
float moyenneCapacité =0;
int nbAvions
= 0;
while (
)
{System.out.print("Immat : "+
;
System.out.println("Capacité : "+
;
moyenneCapacité += curseurJava.getInt(2);
nbAvions ++; }
moyenneCapacité /= nbAvions;
System.out.println("Capacité moy : "+moyenneCapacité);
;
Parcours du curseur.
Extraction de colonnes.
Fermeture du curseur.
} catch(SQLException ex) { … }
Gestion des erreurs.
ResultSet curseurJava
etatSimple.executeQuery
curseurJava.next()
curseurJava.getString(1))
curseurJava.getInt(2))
curseurJava.close()
Précédent

- 324/418

Suivant