6.0
Mettre les tables à jours
Supposons qu'après la première semaine, le propriétaire du The Coffee Break veuille mettre à jours la colonne VENTES de la table CAFE en entrant le nombre de livres vendues pour chaque type de café. L'instruction SQL pour mettre à jour est la suivante :
Utilisant l'instruction stmt, le code JDBC exécute l'instruction SQL contenue dans updateString :
La table COFFES doit maintenant ressembler à ça :
Notez que nous n'avons pas encore mis à jour la colonne TOTAL, sa valeur est toujours 0. Maintenant, sélectionnons la ligne mise à jour, rapportons la valeur dans les colonnes de NOM_CAFE et de VENTES, et affichons ces valeurs :
Ça affichera : 75 livres de Colombian vendu cette semaine La clause WHERE limite la sélection à une seule ligne, il n'y avait qu'une seule ligne dans le result set rs, et donc une seule ligne a été affichée. Dans ce cas, il est possible d'écrire le code sans la boucle while :
Même si il n'y a qu'un seul résultat dans le result set, vous devez utiliser la méthode next pour y accéder. Un objet ResultSet est créé avec un curseur pointant au dessus de la première ligne. Le premier appel de la méthode next positionne le curseur sur la première (et dans ce cas, la seule) ligne de rs. Dans ce code, next est appelé juste une fois, donc si il y avait eu une autre ligne, elle n'aurait jamais pu être accédée. Maintenant mettons à jour la colonne TOTAL en ajoutant le montant hebdomadaire au total existant, et affichons le nombre de livres vendues à ce jour :
Notez que dans cet
exemple, nous utilisons l'index de la colonne plutôt que son nom,
fournissons l'index 1 à getString (la première colonne du result
set est NOM_CAFE), et l'index 2 à getInt (la seconde colonne du
result set est TOTAL). Il est important de faire la distinction entre
l'index d'une colonne dans la table de la base de données comme
opposée à l'index dans le result set. Par exemple, TOTAL
est la cinquième colonne dans la table CAFE mais c'est la seconde
colonne dans le résultat généré par la requête
dans l'exemple ci-dessus. |