我为JavaFX设置了一个DatePicker,我试图将日期选择器中的选定日期存储到带有日期列的mySQL表中。
我有以下内容,但DatePicker.getValue()将所选日期作为long返回。
preparedStatement.setDate(1, DatePicker.getValue());
如何将datePicker的值设置为有资格存储在mySQL日期列中的日期格式。
答案 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文档)时,您可以拥有自己找到了答案。