Итак, моя проблема в том, что я хочу разрешить пользователю изменять дату доставки продукта в соответствии с тем, что он хочет.Так что я сделал, что я собираю год, месяц и день от пользователя и преобразовываю его в формат даты, требуемый SQL.Все данные были в порядке, но всякий раз, когда я хотел обновить дату доставки, она не обновляется и не отображает ошибку.
Я использовал данные, полученные от пользователя, чтобы установить год, месяц в классе календаря.и датаЗатем я преобразовал дату в java.util.Date, прежде чем смог преобразовать ее в java.sql.Date
//sql query
private static final String UPDATESHIPPINGDATE = "UPDATE book SET shippingDate = ? WHERE orderID = ? ";
//Required format for SQL
private static final String DATE_FORMAT_NOW = "yyyy-MM-dd";
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
//The method
public void updateShippingDate(int orderID, int year,int month,int day){
try(Connection con = DBConnection.getConnection();
PreparedStatement stmtUpdate = con.prepareStatement(UPDATESHIPPINGDATE);
PreparedStatement stmtShippingDate = con.prepareStatement(GETSHIPPGINGDATE);
){
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,(month-1));
cal.set(Calendar.DATE,(day-1));
Date dateConvert = cal.getTime();
java.sql.Date shippingDate = new java.sql.Date(dateConvert.getTime());
stmtUpdate.setInt(1,orderID);
stmtUpdate.setDate(2,shippingDate);
stmtUpdate.executeUpdate();
stmtShippingDate.setInt(1,orderID);
ResultSet result = stmtShippingDate.executeQuery();
while (result.next()){
System.out.println("Your new shipping date: " + result.getDate("shippingDate"));
}
}catch (Exception e){
System.out.println(e);
}
}
Ожидаемое: 2019-06-20 (обновленный вывод). Вывод был: 2019-06-24 (старый вывод)