使用JavaFX Datepicker将日期插入MySql数据库

时间:2015-05-16 18:13:30

标签: javafx javafx-2

我试图使用javaFx从数据选择器向mysql数据库插入日期。 提交此代码我感到很累。

@FXML
private DatePicker DPCurrentDate;//fx:id="DPCurrentDate"

// BrandAdded is a Method that i created for insert data into database

private void BrandAdded(){

    DBConnection newCon = new DBConnection();
    con = newCon.geConnection();

    try {
        pst = con.prepareStatement("insert into Brands values(?,?,?,?,?)");
        pst.setString(1, null);
        pst.setString(2, TFBrandName.getText());
        pst.setString(3, TABrandDecription.getText());
        pst.setString(4, lblUserName.getText());
        pst.setDate(5, DPCurrentDate.getValue());
        pst.executeUpdate();

    } catch (SQLException ex) {
        Logger.getLogger(AddBrandController.class.getName()).log(Level.SEVERE, null, ex);
    }
}

当我运行我的程序时,它会给我这个错误

error: incompatible types: LocalDate cannot be converted to Date
        pst.setDate(5, DPCurrentDate.getValue());

4 个答案:

答案 0 :(得分:2)

你需要

java.util.Date date = 
    java.util.Date.from(dpCurrentDate.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant());
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
pst.setDate(5, sqlDate);

(使用java.sql.Date)。

答案 1 :(得分:0)

import java.sql.Date;
Date  DPCurrentDate1 =  Date.valueOf(DPCurrentDate);
pst.setDate(5, DPCurrentDate1);

这会做你的工作

答案 2 :(得分:0)

在您的方法save或您命名的任何名称中使用它。

dateTimePicker.valueProperty().get(),

注意。如果这是您要保存的最后一项,请用)将其关闭。

答案 3 :(得分:0)

您可以尝试以下方法:

pst.setDate(5, ((TextField)DPCurrentDate.getEditor()).getText());