Как вставить в JDate значение выбора в БД

У меня есть JDateChooser в моей форме. и мне нужно вставить его значение даты в БД. Я использовал этот метод сразу после того, как "открытый класс 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 моей кнопки Add я использовал

             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, Перед кодом выше всякие вещи появляются как Авг 6,2015.

1 ответ

Решение

Попробуй ниже высказывания,

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

Причина: это из-за операторов импорта. Возможно, вы импортировали в свой код только оператор java.sql.Date или java.sql.*. Все классы Date, которые вы упомянули в своей программе, будут обрабатываться как java.sql.Date. Таким образом, JVM пытается преобразовать java.util.Date в java.sql.Date в этом выражении и выдает исключение.

Другие вопросы по тегам