如何将JDate选择器值插入到db中

时间:2015-08-19 03:54:19

标签: java phpmyadmin java.util.date jdatechooser

我的表格中有一个JDateChooser。我需要将它的Date值插入DB。 我在“public class Nonacademic extends javax.swing.JInternalFrame {”之后使用了这个方法,

我使用的方法如下所述,

public static java.sql.Date convertUtilDateToSqlDate(java.util.Date date){

                if(date != null) {
                java.sql.Date sqlDate = new java.sql.Date(date.getTime());
                    return sqlDate;
                    }
                JOptionPane.showMessageDialog(null, "No Dates are      Specified!");
                return null;
                }

并在我的添加按钮的actionPerformed事件中我使用了

             Connection c=DBconnect.connect();
             Statement s = (Statement) c.createStatement();
             PreparedStatement statement =  c.prepareStatement("INSERT into nonacademic ( empId, name, Dob, JoinedDate) VALUES (?,?,?,?)");

           statement.setString(1,txtEmpId.getText());
           statement.setString(2, txtNmae.getText());
           statement.setDate(3,convertUtilDateToSqlDate( (Date)     jDateChooserDOB.getDate()));
           statement.setDate(4, convertUtilDateToSqlDate( (Date) jDateChooserDateOfJoined.getDate()));

的Statement.executeUpdate();

问题是它给出了这个错误, java.lang.ClassCastException:java.util.Date无法强制转换为java.sql.Date

当我搜索这个解决方案时,我发现这个运行时错误是由于父类实例正在转换为子类而发生的。所以你可以给我一个建议来纠正这个代码。

注意: 在我在JDateChooser中选择日期后完成上面的代码编码它出现在2015-08-06,之前的代码上面的东西它出现在2015年8月6日。

1 个答案:

答案 0 :(得分:0)

尝试以下声明,

statement.setDate(3,convertUtilDateToSqlDate(jDateChooserDOB.getDate()));
statement.setDate(4, convertUtilDateToSqlDate(jDateChooserDateOfJoined.getDate()));

原因: 这是因为import语句。您可能在代码中仅导入了java.sql.Date或java.sql。*语句。所有"日期"您在程序中提到的类将被视为java.sql.Date。所以JVM试图在这些语句中将java.util.Date转换为java.sql.Date并抛出异常。