JDBC JAVAFX日期用于预处理语句

时间:2015-07-10 18:35:20

标签: java mysql jdbc datepicker

我为JavaFX设置了一个DatePicker,我试图将日期选择器中的选定日期存储到带有日期列的mySQL表中。

我有以下内容,但DatePicker.getValue()将所选日期作为long返回。

preparedStatement.setDate(1, DatePicker.getValue());    

如何将datePicker的值设置为有资格存储在mySQL日期列中的日期格式。

1 个答案:

答案 0 :(得分:2)

方法DatePicker.getValue返回java.time.LocalDate,方法PreparedStatement.setDate需要java.sql.Date

您需要将LocalDate转换为java.sql.Date。为此,您可以使用方法java.sql.Date.valueOf(LocalDate)

preparedStatement.setDate(1, java.sql.Date.valueOf(DatePicker.getValue()));

如果您的JDBC驱动程序正确实现了JDBC 4.2 java.time支持,那么您还应该能够使用:

preparedStatement.setObject(1, DatePicker.getValue());

但据我所知,在大多数JDBC驱动程序中,这种支持仍然不稳定或不存在。

提示让您的生活更轻松(并且不必等到有人回答您的问题):当您阅读(学习)所涉及的类的API文档(以及返回和参数类型的API文档)时,您可以拥有自己找到了答案。