将日期从 JDateChooser 插入 Oracle DB

Insert date from JDateChooser into Oracle DB

我一直在尝试使用 JDateChooser 将日期插入我的 Oracle 数据库,但我一直收到此错误:

SQL Error: ORA-01861: literal does not match format string.

这是我的代码。

        private void addActionPerformed(java.awt.event.ActionEvent evt) {                                    
    // TODO add your handling code here:
    try{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String d = sdf.format(tdate.getDate());
        System.out.println(d);

    String sql ="INSERT INTO TRACK(TRACKID,TRACKNAME,TRACKDESC,TRACKDATE)VALUES (?,?,?,?)";
        ps=conn.prepareStatement(sql);
        ps.setString(1,tid.getText());
        ps.setString(2,tname.getText());
        ps.setString(3,td.getText());
        ps.setString(4,d);
        ps.execute();

        JOptionPane.showMessageDialog(null, "Added");
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null,e);
    }

}                            

第四个参数使用 setDate 而不是 setString

ps.setDate(4, new java.sql.Date(tdate.getDate().getTime());

有关设置日期的更多信息 Using setDate in PreparedStatement