【发布时间】:2015-11-12 04:59:50
【问题描述】:
我的表单中有一个 JDateChooser。我需要将它的日期值插入数据库。 我在“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 日。
【问题讨论】:
-
您是否尝试过在您的
statement.setDate通话中摆脱(Date) -
当我输入 statement.setDate(3,convertUtilDateToSqlDate(jDateChooserDOB.getDate())); (如果没有(日期),它会显示一个错误并显示一条消息,说要投射它。
-
那么,
jDateChooserDOB.getDate()可能不会返回java.util.Date,猜测...
标签: java phpmyadmin java.util.date jdatechooser