保存数据到 mysql 时的时间序列化对我来说一直有点头疼,不难,但它很烦。时间在保存是需要做转换,要是 handler 写错或者写的不健壮,早晚得异常。前几天有个同事设计表,把 mysql 的时间类型全给用上了,暂不讨论他为何这么设计,倒是逼着我查了一番 java 和 mysql 的时间类型转换。
时间对应关系
java 依赖中本省就提供了针对 sql 的包 java.sql.*,类型对应关系如下:
| mysql | java |
|---|---|
| date | java.sql.Date |
| Datetime | java.sql.Timestamp |
| Timestamp | java.sql.Timestamp |
| Time | java.sql.Time |
| Year | java.sql.Date |
上述对饮两种时间类型的转化在数据持久化时 mysql 自个就做了,只要数据是正确的,转化很定不出异常。这就好办了。
java 时间类型持久化到 mysql
方式一:既然 java.sql.* 的时间类型能自动转化,那就可以直接将这个时间包用在开发中。(我很少见到这么用的,自己很菜)
方式二:大多数场景下都使用 java.util.* 或者 java.joda.* 。这时可以考虑在时间持久化时将类型转化成对应的 java.sql* 。
本文探讨了在Java中保存数据到MySQL时遇到的时间序列化问题。文章指出,虽然转换过程可能繁琐,但Java.sql.*包提供了与MySQL时间类型对应的类,如Date、Timestamp等,能够自动进行转换。通常,开发者会选择将java.util.*或java.joda.*的时间类型转换为java.sql.*再进行持久化。文中还提到了直接使用java.sql.*时间和将时间类型转换为字符串两种持久化策略,并强调了正确处理时间类型转换的重要性。

1480

被折叠的 条评论
为什么被折叠?



