我应该使用java.util.Date还是java.sql.Date?
我有一个VisualFox数据库,我使用适当的jdbc类型4驱动程序使用IntelliJ Idea向导检索实体。
ide(或驱动程序)已将日期字段创建为Timestamp。但是,日期字段不是时间戳,而是日期字段,它们仅存储年,月和日。
所以我想知道是否应该切换到java.util.Date或java.sql.Date。乍一看,我认为java.sql.Date应该是合适的,但它有许多声明为弃用的方法。
答案 0 :(得分:1)
一般情况下,我认为使用java.util.Date
是明智的,因为您可以在程序中的任何位置使用它,而无需转换类型或使用特定于SQL的代码污染应用程序。
我不知道' java.sql.Date'会更合适。
答案 1 :(得分:1)
嗯,根据这个article,您可以使用javax.sql.Date
而不使用@Temporal
注释,这样可以节省一些代码。但是java.util.Date
更易于在整个应用程序中使用。
所以我会用
@Column(name = "date")
@Temporal(TemporalType.DATE)
private java.util.Date date;
答案 2 :(得分:0)
根据Java doc,建议根据底层数据库使用适当的Date类型。 但是,使用Java 8,已经提供了java.time包下的一组丰富的类,如果应用程序是用Java 8编写的,则必须使用它。
类javaxjava.sql.Date扩展了java.util.Date,对miliseconds容器进行了少量更改,以便它可以有效地支持Database DATE类型。这样,我们可以保存从实体类输入的@Temporal注释。
但是,java.util.Date可以在整个应用程序中用于更好的可伸缩性,以便它可以很容易地用于存储时间和日期。