我试图使用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());
答案 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());