使用JavaFXDatePicker将日期插入MySql数据库

使用JavaFXDatePicker将日期插入MySql数据库,javafx,javafx-2,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 DBConnectio

我正在尝试使用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());
你需要

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)


这将完成您的工作

在您的方法保存或任何您命名的方法中使用它

dateTimePicker.valueProperty().get(),
注意。如果这是最后一个要保存的项目,请用
)将其关闭。

您可以尝试以下操作:

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

我是如何获得作为数据采集器的
dpCurrentDate
的。。。我刚刚更正了您的变量名,使其符合标准命名约定:)。不过我还有很多其他的错误(不知道当我把它们放在一起的时候我在想什么…)。它们现在已经修复了。我将在2020年与JDK 8一起使用此解决方案。它仍然有效。非常感谢你。
pst.setDate(5, ((TextField)DPCurrentDate.getEditor()).getText());