【问题标题】:How to store mysql date in Java , which type of variable to use? [duplicate]如何在 Java 中存储 mysql 日期,使用哪种类型的变量? [复制]
【发布时间】:2018-06-10 21:01:26
【问题描述】:

我有一个 MySQL 表,其中一些列是 DATE 类型。 现在,在 Java 中,我有用于列的字段,但是当我到达日期时,我只是不知道该怎么办......

package com.keeptrack.model;
public class Racun {
    int id;
    String uplatilac;
    String svrha_uplate;
    String primalac;
    int sifra_placanja;
    String valuta;
    Double iznos;
    Long racun_primaoca;
    int model;
    String poziv_na_broj;
    ?????? date;
}

【问题讨论】:

  • LocalDateTime?
  • 请最小化您的示例代码以专注于手头的问题。请记住,Stack Overflow 是一个英文网站。
  • 在 MySQL 中存储 Java 日期时间值的主题已经讨论过很多次了。在发布之前进行搜索,并说明您的问题有何独特之处。

标签: java mysql


【解决方案1】:

java.time.LocalDate

MySQL 的DATE 类型用于具有日期部分但没有时间部分的值,因此您最好使用LocalDate API。

另一个变体是LocalDateTime API。如果您想表示日期和时间,请使用此选项,即 MySQL 的 DATETIME 类型需要 LocalDateTime 对象在客户端(Java 程序)上表示它。

顺便说一句,避免将字段暴露给外界。将它们全部设为private 以强制封装,并仅在需要时提供 getter 和 setter。

【讨论】:

  • OK ty,我尝试了 LocalDate 并且它起作用了,但后来在程序中我有一个 PreparedStatement ps ........ 当我尝试 ps.setDate (10,r.date) ;它说 LocalDate 不能转换为 Date 所以我只使用 Date 并导入了 java.sql.Date;
  • @AleksandarStojanovic 在 JDBC 中使用 java.time 需要符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。 myPreparedStatement.setObject( … , myLocalDate ); 用于 MySQL DATE 列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 2013-06-24
  • 2017-05-10
  • 2011-04-30
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
相关资源
最近更新 更多