用Hibernate将Date类型的数据按格式存入MySQL

来源:互联网 发布:武汉网络推广招聘 编辑:程序博客网 时间:2024/05/21 09:06

最近在学习Hibernate和MySQL,需要将Date存入MySQL。因为需要精确到分钟,格式设定为"yyyy-MM-dd HH:mm:ss”。如果直接存入Date的话,如下面第四行所示:

String hql = "update Security as s set s.otp=:otp, s.otpStart=:otpStart where strID=:strID";Query query = session.createQuery(hql);query.setString("otp", otp);query.setDate("otpStart", new Date());query.setString("strID", strID);query.executeUpdate(); session.getTransaction().commit();

在数据库中只能得到yyyy-MM-dd 00:00:00,即时分秒都被略过了。

在网上google了很久,终于找到了一种方法(http://stackoverflow.com/questions/2400955/how-to-store-java-date-to-mysql-datetime),可以将Date按Java中设定的格式存入,并且将此数据再次从数据库中取出时,依然为预定格式的Date,不会影响后续的getTime()以及计算时间差。

String hql = "update Security as s set s.otp=:otp, s.otpStart=:otpStart where strID=:strID";Query query = session.createQuery(hql);query.setString("otp", otp);query.setString("otpStart", df.format(new Date()));query.setString("strID", strID);query.executeUpdate(); session.getTransaction().commit();
即将Date通过格式化转成字符串,按字符串类型存入,时分秒不会被省略,依然可以按Date类型取出并进行相应计算,听上去有写诡异,但是这么做确实有效。





原创粉丝点击