簡體   English   中英

如何使用mySql中的日期數據類型正確更新JTable中的字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM