如何处理dbutil中的日期类型值

tgabmvqs  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(312)

我在dbutil文件中设置发送查询的值,但是有两个值:start和end是html5表单和mysql数据库中的日期类型值。设置时如何在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

m4pnthwp

m4pnthwp1#

你需要使用 java.sql.Date :

myStmt.setDate(3, new java.sql.Date(theBook.getStart().getTime()));
nc1teljy

nc1teljy2#

如果您使用的是java8+和jdbc4.x,那么可以将java.time api与 setObject 而不是 java.util.Date ,您也可以使用 LocalDateTime 你的区域id是这样的:

LocalDateTime startDate = ...
LocalDateTime endDate = ...
myStmt.setObject(4, startDate);
myStmt.setObject(5, endDate);

如果您坚持使用java 7或更低版本,您可以看到以下链接:
在preparedstatement中使用setdate

相关问题