Non seulement on peut rendre les objets de ResultSet défilables dans JDBC 2.0, mais on peut aussi les rendre actualisables. Dès que l'on a atteint un ResultSet, de nombreuses nouvelles fonctions permettent d'actualiser ou de mettre à jour une ligne. L'exemple de la figure 3 crée une table et ajoute
Des ResultSets actualisables
des données. Il crée
ensuite un ResultSet et met à jour les valeurs dans la colonne COL1 en ajoutant
1 à chaque valeur et modifie les valeurs dans la colonne COL2 en leur donnant
la valeur en cours plus le suffixe » said « .
On notera également les nouvelles méthodes updateInt et updateString. Il existe
des méthodes updateXxx correspondantes pour toutes les méthodes getXxx. Le premier
paramètre de la méthode updateInt(int, int), par exemple, est l’index de colonne.
Comme la méthode getInt(int), l’index de colonne est par défaut 1. Le second paramètre
est la nouvelle valeur. Il y a aussi les méthodes getXxx (chaîne) et updateXxx
(chaîne, type) qui utilisent un nom de colonne comme premier argument.
De plus, la méthode updateRow est appelée après que les modifications ont été
effectuées. Il est important de comprendre que updateInt, updateString et toutes
les autres méthodes ne modifient pas le contenu de la base de données. Elles modifient
simplement une mémoire-tampon qui représente la ligne. Ce n’est qu’au moment où
updateRow est appelé que la ligne est modifiée dans la base de données.
On peut appeler les méthodes cancelRowUpdates ou refreshRow pour effacer les modifications
proposées dans la mémoire-tampon. On peut obtenir la même chose en allant simplement
sur une nouvelle ligne. Quand on quitte la ligne courante, les éventuelles valeurs
updateXxx pour lesquelles updateRow n’a pas été appelé, sont perdues. Il existe
aussi la méthode deleteRow qui supprime la ligne courante de la base de données
et du ResultSet.
En plus d’une mémoire-tampon pour les mises à jour des lignes, il en existe une
pour les insertions de lignes. Pendant qu’on travaille avec un objet ResultSet,
on peut aller sur cette ligne insert, définir les valeurs souhaitées et insérer
la ligne dans la base de données. L’exemple de code suivant montre comment procéder
:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(
« SELECT * FROM TABLEX »);
rs.moveToInsertRow();
rs.updateInt(1, 0);
rs.updateString(2, « CUJO »);
rs.insertRow();
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les coûts cachés des merge requests générées par l’IA
- WatchGuard lance Rai, une IA agentique taillée pour les MSP
- Mythos révèle les limites d’un Zero Trust centré sur le réseau
- Faire évoluer la souveraineté des données du statut d’ambition politique à son application opérationnelle
Articles les + lus
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Avril 2026
À la une de la chaîne Tech
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Avril 2026
