2016-04-28 1 views
0

Je souhaite mettre à jour un enregistrement dans une base de données à l'aide de JDBC RowSet. Je reçois d'abord l'enregistrement requis puis j'utilise updateRow() pour mettre à jour. Mais cela ne se reflète pas dans la base de données. Aucune erreur signaléeMise à jour des lignes sélectionnées JDBC RowSet

rowSet.setCommand("SELECT * FROM Employee WHERE uid="+e.getUid()); 
rowSet.execute(); 
rowSet.updateString("name", e.getName()); 
// More update operations 
rowSet.updateRow(); 
+0

Avez-vous 'autoCommit() == true'/avez-vous appelé' rowSet.commit() 'explicitement? –

+0

Je crois que autoCommit = true car l'insertion et la suppression fonctionnent correctement sans rowSet.commit() –

Répondre

0

This exemple montre que vous devez d'abord passer à la ligne modifiée à l'aide de mettre à jour la troisième ligne

jdbcRs.absolute(3); 

.

Notez également que dans Oracle l'ensemble de lignes doit être explicitement actualisable

rowset.setReadOnly (false); 
+0

D'où vient "3"? –

+0

Ceci mène à la troisième ligne, voir [ici] (https://docs.oracle.com/javase/tutorial/jdbc/basics/jdbcrowset.html#navigating-jdbcrowset-object) –