[英]How to properly update a field in JTable with a date data type in mySql?
這是我的代碼,它編譯時沒有錯誤,但是當我編輯單元格時似乎什么都沒有改變
public void setValueAt(Object v, int r, int c)
{
try {
rs.absolute(r+1);
rs.updateString(c+1, String.valueOf(v));
this.fireTableDataChanged();
} catch (SQLException ex) {
Logger.getLogger(MyModel2.class.getName()).log(Level.SEVERE, null, ex);
}
}
我可以通過雙擊單元格來成功編輯值,但是每當我按Enter鍵時,它都不會保存我的輸入,也不會產生任何錯誤。
編輯
如@MadProgrammer所述,updateString僅影響視圖,只需添加updateRow()方法,即可將更改直接發送到數據庫!
public void setValueAt(Object v, int r, int c)
{
try {
rs.absolute(r+1);
rs.updateString(c+1, String.valueOf(v));
rs.updateRow();
} catch (SQLException ex) {
Logger.getLogger(MyModel2.class.getName()).log(Level.SEVERE, null, ex);
}
}
因此,從JavaDocs “使用字符串值更新指定的列。updater方法用於更新當前行或插入行中的列值。updater方法不會更新基礎數據庫;相反,將調用updateRow或insertRow方法以更新數據庫” ,因此要更新基礎行,您需要調用ResultSet#updateRow
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.