Bonjour,
j'essaie désespérément de créer une JTable qui soit lié au contenu d'un ResultSet. Pour cela j'ai créé un TableModel correspondant à ma ResultSet.
Techniquement, cela marche bien. C'est à dire que ma JTable se remplit avec le contenu de la base, et quand je modifie une cellule de JTable, la base est modifiée en conséquence. Par contre, là où cela foire lamentablement c'est pour que la JTable reflète la valeur modifiée.
Le scénario que j'observe est en effet le suivant:
- Je modifie la cellule (0,0). Le setData() est bien appelé et fait à la fois le UpdateString correspondant à la mise à jour du champ, et le UpdateRow() de mise à jour de la base,
- Ensuite un getData() est appelé pour la remise à jour de la cellule. Sauf que ce foutu getData() renvoie la valeur précédente au lieu de la nouvelle valeur.
Je n'arrive pas à comprendre pourquoi il renvoie l'ancienne valeur sachant que je suis même allé jusqu'à forcer un refreshRow(), et que mon Statement a été créé par:
createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
On dirait que j'ai un cache quelque part qui m'embête, mais je ne sais pas où. La base utilisée est une base MySQL (serveur WampServer) à laquelle j'accède via une connexion ODBC, donc via le driver sun.jdbc.odbc.JdbcOdbcDriver.
Partager