簡體   English   中英

使用 JDateChooser 獲取日期並將其保存到 mysql 數據庫中

[英]get a date using a JDateChooser and save it into mysql database

表 <code>LETTER</code> 的設計視圖

我需要從JDateChooser讀取日期並使用JButtonActionPerformed方法將其保存到MYSQL數據庫表中。

在這個名為LETTERJInternalFrameForm中,有三個名為JDateChoosersRECEIVED_DATESENDING_DATELETTER_DATE

下面是JButton SAVEActionPerformed方法的代碼,它將數據保存到MYSQL表中。

private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {                                     
                   try{
                   Statement s=DB.getConnection().createStatement();        

                    s.executeUpdate("insert into LETTER values('"+LETTER_ID.getText()+"','"+LETTER_CATEGORY.getSelectedItem()+"','"+LETTER_DATE.getDate()+"','"+HEADING.getText()+"','"+SECTION_ID.getSelectedItem()+"','"+SUBJECT_ID.getSelectedItem()+"','"+INSTITUTE_ID.getSelectedItem()+"','"+NEW_INSTITUTE.getText()+"','"+SENDERS_ID.getSelectedItem()+"','"+NEW_SENDER.getText()+"','"+RECEIVED_DATE.getDate()+"','"+RECEIVERS_ID.getSelectedItem()+"','"+NEW_RECEIVER.getText()+"','"+SENDING_DATE.getDate()+"')");
                    JOptionPane.showMessageDialog(this, "Saved");
                }
                catch(Exception ex){
                    ex.printStackTrace();
        }
            } 

當我單擊JButton保存數據時,它會提供以下stacktrace跟蹤。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: 'Mon Dec 04 14:45:36 PST 2017' for column 'LETTER_DATE' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730)
    at Viewer.LETTER.SAVEActionPerformed(LETTER.java:280)
    at Viewer.LETTER.access$000(LETTER.java:16)
    at Viewer.LETTER$1.actionPerformed(LETTER.java:99)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:720)
    at java.awt.EventQueue$4.run(EventQueue.java:718)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

誰能幫我找出這里的問題並更正第 1 row 1 ['LETTER_DATE'][1] columndatetime時間值?

那么,您應該使用getDateFormatString()而不是getDate() 例如:

s.executeUpdate("insert into LETTER values('"+LETTER_ID.getText()+"','"+LETTER_CATEGORY.getSelectedItem()+"','"+LETTER_DATE.getDateFormatString()+"','"+HEADING.getText()+"','"+SECTION_ID.getSelectedItem()+"','"+SUBJECT_ID.getSelectedItem()+"','"+INSTITUTE_ID.getSelectedItem()+"','"+NEW_INSTITUTE.getText()+"','"+SENDERS_ID.getSelectedItem()+"','"+NEW_SENDER.getText()+"','"+RECEIVED_DATE.getDateFormatString()+"','"+RECEIVERS_ID.getSelectedItem()+"','"+NEW_RECEIVER.getText()+"','"+SENDING_DATE.getDateFormatString()+"')");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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