Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理DBUtil中的日期类型值_Java_Mysql_Servlets_Jdbc_Compiler Errors - Fatal编程技术网

Java 如何处理DBUtil中的日期类型值

Java 如何处理DBUtil中的日期类型值,java,mysql,servlets,jdbc,compiler-errors,Java,Mysql,Servlets,Jdbc,Compiler Errors,我在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.setStrin

我在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

您需要使用:


如果您使用的是Java8+和Jdbc 4.x,那么您可以与
setObject
一起使用,而不是
java.util.Date
,您也可以使用
LocalDateTime
和您的区域Id,如下所示:

LocalDateTime startDate = ...
LocalDateTime endDate = ...
myStmt.setObject(4, startDate);
myStmt.setObject(5, endDate);
如果您坚持使用Java 7或更低版本,您可以看到以下链接:


如果我使用java.sql.Date,如果在Servlet和java类java.util.Date上保留,是否可以?如果我只为DBUtil导入java.sqla.date并使用您演示的语法,可以吗?:)@Luke_Nuke如果您没有在同一代码中的任何其他地方使用
java.util.Date
,当然,您可以只导入
java.sql.Date
。我在我的Class.java ServletController.java中导入java.util.Date,在我的DBUtil中也导入ATM。因此,如果我导入它们(java.util)并使用语法:myStmt.setDate(3,new java.sql.Date(theBook.getStart().getTime());可以吗?我是否为该语法输入了ti import java.sql.Date,或者没有必要这样做?:)@Luke_Nuke如果使用完全限定类名(
java.sql.Date
),则不需要导入它。仅供参考,麻烦的旧
java.util.Date
java.sql.Date
类现在是遗留类。多年前被java.time类取代。具体来说,
Instant
LocalDate
LocalDateTime startDate = ...
LocalDateTime endDate = ...
myStmt.setObject(4, startDate);
myStmt.setObject(5, endDate);