Stire JDateChooser дата в базе данных

Я хочу сохранить дату jDateChooser в базе данных, где у меня есть столбец типа даты sql. Этот код я использую:

try{ 
        String f_name = qq.getText();
        String l_name= jTextField2.getText();
        String add1 =jTextField4.getText();
        String add2 =jTextField5.getText();
       String add3 =jTextField6.getText();
        String add4 =jComboBox1.getSelectedItem().toString();
        String add= add1+","+add2+","+add3+","+add4+".";
        java.util.Date dob= jDateChooser1.getDate();
        String url="jdbc:sqlserver://localhost:1433;databaseName=gym2 ";
        String username = "mali";
        String password = "12345";
        Connection con =DriverManager.getConnection(url,username,password);
        Statement st = con.createStatement ();

        PreparedStatement pre = con.prepareStatement ("INSERT INTO employee_reg(firstname,lastname,full_address,dateofbirth)VALUES(?,?,?,?)");
        pre.setString(1,f_name);
        pre.setString(2,l_name);
        pre.setString(3,add);
        pre.setDate(4, (Date) dob);
        pre.executeUpdate();

        pre.close();
        con.close();           
    }
    catch(Exception en)   { } 

Но это не работает.

1 ответ

Конвертируйте util.Date в sql.Date, а не в кастинг. Смотрите комментарии:

    try{ 
        String f_name = qq.getText();
        String l_name= jTextField2.getText();
        String add1 =jTextField4.getText();
        String add2 =jTextField5.getText();
        String add3 =jTextField6.getText();
        String add4 =jComboBox1.getSelectedItem().toString();
        String add= add1+","+add2+","+add3+","+add4+".";
        //convert java.uti.Date to java.sql.Date by: 
        java.sql.Date dob= new java.sql.Date(jDateChooser1.getDate().getTime);
        String url="jdbc:sqlserver://localhost:1433;databaseName=gym2 ";
        String username = "mali";
        String password = "12345";
        Connection con =DriverManager.getConnection(url,username,password);
        Statement st = con.createStatement ();

        PreparedStatement pre = con.prepareStatement ("INSERT INTO employee_reg(firstname,lastname,full_address,dateofbirth)VALUES(?,?,?,?)");
        pre.setString(1,f_name);
        pre.setString(2,l_name);
        pre.setString(3,add);
        //no need to cast
        pre.setDate(4, dob);
        pre.executeUpdate();

        pre.close();
        con.close();
    }
    catch(Exception en) {}
Другие вопросы по тегам