【发布时间】:2018-06-30 17:28:38
【问题描述】:
我正在使用 Springboot 和 MYSQL。我的应用程序可以将日期类型(java.util.Date,java.sql.Timestamp)写入类型为(DATE,DATETIME,TIMESTAMP)的mysql。但是,无论我在 Java 和 MySQL 中使用什么日期类型,Spring 都无法从 MySQL 中读取日期。有没有人知道如何解决这个问题?提前非常感谢。 1) 它适用于其他数据类型,INT、TEXT、VARCHAR 等。一切正常。 2)我检查了存储在MYSQL中的日期,它们的格式都是正确的。 3)我尝试的日期类型组合是:
java.sql.Date with mysql:DATETIME
java.sql.Date with mysql:DATE
java.util.Date with mysql:DATETIME
java.util.Date with mysql:DATE
java.sql.Timestamp mysql:TIMESTAMP
都是一样的,我可以成功写入mysql,但是不能从数据库中读取日期信息。
我的属性文件:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/forum_demo
?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=****
mybatis.config-location=classpath:mybatis-config.xml
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
我的模特:
public class Comment {
private int id;
private String content;
private int userId;
/* I tried java.util.Date here as well for DATETIME in MYSQL, it is the same result*/
private Timestamp createDate;
private int entityId;
private int entityType;
private int status;
...
}
每次我调试我的应用程序时,createDate 的 getter 总是返回一个“null”。
【问题讨论】:
-
这不是您问题的答案,但您应该更喜欢现代 Java 日期和时间类型:
LocalDate以及至少LocalDateTime和Instant之一。不过,我还没有在 Spring Boot 中使用它们的经验,但它肯定是可能的。
标签: java mysql date datetime spring-boot