我为JavaFX设置了DatePicker,我试图将日期选择器中的选定日期存储到带有日期列的mySQL表中。
我有以下内容,但是DatePicker.getValue()返回选择的日期长。
preparedStatement.setDate(1, DatePicker.getValue());
如何获取datePicker的值,使其具有符合资格存储在mySQL date列中的日期格式。
最佳答案
方法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驱动程序中,这种支持仍然不稳定或不存在。
作为使您的生活更轻松的提示(不必等到有人回答您的SO问题):当您阅读(研究)所涉及类的API文档(以及返回和参数类型的API文档)时,您可能会找到答案。你自己