将MySql Date映射到java对象

时间:2016-02-01 16:39:02

标签: java mysql database date datetime

在我的MySql数据库中我将​​日期存储为DATE类型,因此我只存储YYYY-MM-DD而没有任何关于时间的信息(在另一个表中我使用DATETIME来存储时间信息)。 我的实体是:

@Entity
@Table(name = "clientlicense", catalog = "ats")
public class ClientLicense implements java.io.Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Integer idClientLicense;
    private Date startDate;
    private Date endDate;
    private int counter;
    private String macAddress;
    private String cpuId;

但是当我从我的WebUi获得startDateendDate时,我甚至收到了像2016-01-29 00:00:00.0这样的时间 如何只将日期存储到数据库中?我是否必须使用我的HTML代码?谢谢

2 个答案:

答案 0 :(得分:1)

尝试使用@Temporal JPA注释。

调整字段并更改类型应该会有所帮助:

@Temporal(TemporalType.TIMESTAMP)  
private java.util.Date startDate;

有效值为:

TemporalType.DATE
TemporalType.TIME
TemporalType.TIMESTAMP

相当于

DATE – equivalent of java.sql.Date
TIME – equivalent of java.sql.Time
TIMESTAMP – equivalent of java.sql.Timestamp

答案 1 :(得分:0)

您的实体映射对我来说似乎没问题。 java.util.Date类还附带时间信息。

您需要在Web层上格式化日期对象。实施取决于您在前端使用的技术。

例如,如果您在普通的JSP页面上,则可以使用java.text.SimpleDateFormat对象进行格式化。