我正在设置值以在我的DBUtil文件中发送查询,但是有两个值:开始,结束-是HTML5表单和MySQL DB中的日期类型值。设置时如何在DBUtil文件中处理它们?
myStmt.setInt(1, theBook.getNumber());
myStmt.setInt(2, theBook.getPhone());
myStmt.setDate(3, theBook.getStart());
myStmt.setDate(4, theBook.getEnd());
myStmt.setString(5, theBook.getName());
在我的Java类DBUtil和Servlet中,我导入了java.util.Date。如果我使用myStmt.setDate(X,value)(如上述示例),则会出现错误: java.util.date无法转换为java.sql.date
答案 0 :(得分:2)
如果您使用的是Java8 +和Jdbc 4.x,则可以将setObject
与java.util.Date
一起使用java.time API,也可以将LocalDateTime
与区域ID一起使用所以:
LocalDateTime startDate = ...
LocalDateTime endDate = ...
myStmt.setObject(4, startDate);
myStmt.setObject(5, endDate);
如果您坚持使用Java 7或更低版本,则可以看到此链接:
答案 1 :(得分:1)
您需要使用java.sql.Date
:
myStmt.setDate(3, new java.sql.Date(theBook.getStart().getTime()));