> Tech > Des ResultSets actualisables

Des ResultSets actualisables

Tech - Par iTPro - Publié le 24 juin 2010
email

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 gratuitement cette ressource

*** SMART DSI *** VERSION NUMÉRIQUE

*** SMART DSI *** VERSION NUMÉRIQUE

Découvrez SMART DSI, la nouvelle revue du Décideur IT en version numérique. Analyses et dossiers experts pour les acteurs de la transformation numérique de l'entreprise, Gagnez en compétences et expertise IT Professionnelle avec le contenu éditorial premium de SMART DSI.

Tech - Par iTPro - Publié le 24 juin 2010