我正在用Java创建一个库项目,该项目应该记录有关成员,书籍,用户和借阅的数据。当我创建类Borrowing的新对象时,系统会自动记录IssueDate。 当我尝试使用UPDATE SQL QUERY记录返回的书并记录ReturnDate时,问题就出现了。查询有效,但在相应字段的DB中,我总是得到30/12/1899作为ReturnDate。 SQL查询如下:
UPDATE Booking SET Returned = 1, ReturnDate = "+ sdf.format(getReturnDate()) +" WHERE BookingID =" + getBookingID()
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
setReturnDate(new Date());
我决定将其格式化为String并格式化dd / mm / yyyy,因为这是我手动输入时识别的格式,它适用于项目中的所有其他查询(如创建新的Booking和IssueDate)进入真实日期。
我已经尝试过使用java.sql.Date,切换到美国格式(mm / dd / yyyy)并在日期字符串的开头和结尾使用#(哈希标记),但这些都不起作用。 你还有其他想法吗?
答案 0 :(得分:0)
请考虑使用PreparedStatement
,有关详细信息,请参阅Using Prepared Statements
而不是设置"文本"查询,使用PreparedStatement
的{{3}}并让JDBC驱动程序解决它