JDBC日期在Java中不推荐使用(java.sql包)

时间:2009-05-20 12:34:45

标签: java jdbc

我正在使用JDBC和MySQL。我有一个日期列,我需要包含在我的结果集中。不幸的是,我找不到Java中的类来检索日期。不推荐使用SQL Date类。如何从结果集中获取Date对象?

4 个答案:

答案 0 :(得分:19)

您使用java.sql.Date。不推荐使用构造函数和一些方法。班级不是。对此感到困惑,比如java.util.Datejava.util.Calendar?请看Making Sense of Java's Dates

有三种JDBC日期/时间类型:

混淆可能源于java.sql.Date扩展java.util.Date并因此继承其弃用的方法。

只需使用正确的类型作为列的类型。

答案 1 :(得分:3)

我不认为java.sql.Date类本身不推荐使用,只是它的一个构造函数。你应该可以安全地继续使用它。

答案 2 :(得分:2)

旧帖子,但无论如何:

我遇到java.util.Date的粒度问题,并切换到java.util.Timestamp。 我也经历了有限时间戳类型的粒度(最多秒)。

数据库中的列被声明为Date并获取额外的时间部分,我将其检索为Timestamp。问题是它将值截断为秒。

我调查了时间戳的Oracle默认定义,它允许6个小数位。

我猜oracle定义中的Date部分限制了Java中的时间戳部分...

干杯, Grazina

答案 3 :(得分:1)

您可以安全地使用java.sql.Date类来映射您的MySQL DATE类型。 java.sql.Date类扩展了java.util.Date类,因此您可以使用此对象执行所有类型的日期计算。