mysql的json格式化日期格式_数据库日期字段Json序列化格式

引言

在数据库中(以MySQL为例),我们经常使用timestamp来存储时间(例如创建时间、修改时间),如果使用数据库中默认的timestamp设置,会产生两个问题:

在代码中我们需要手动操作数据库的时间字段(例如new Date()生成当前时间插入数据库等操作)

代码中对DTO对象进行JSON序列化时得到的时间字段的值可能时long型,也可能是String型(但不一定是我们想要的格式)

这篇博客中会讲述我总结的两个小技巧从而优雅的方便的解决这两个小问题。

数据库设置

首先这是一个可选的配置,可以根据业务的需求来选择是否在数据库中进行配置。数据库中存储时间大多用于两个场景,一个是记录该条数据创建时的时间,另一个则是记录该条数据最近一次更新的时间。

其实通过两条SQL语句将timestamp的默认值进行设置,在代码中我们便无需再对这两个场景下的时间字段进行任何的显示赋值。

alter table SM_USER change USER_CREATED_TIME USER_CREATED_TIME timestamp DEFAULT CURRENT_TIMESTAMP;

从这条SQL语句中我们可以看出,将SM_USER表timestamp类型的USER_CREATED_TIME字段的默认值设置为“CURRENT_TIMESTAMP”,在配置了这条SQL语句后,当一条新数据插入时会自动将该字段的值设置为当前的时间戳。

alter table SM_USER change USER_UPDATED_TIME USER_UPDATED_TIME timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

第二条SQL语句种我们可以看出多配置“ON UPDATE CURRENT_TIMESTAMP”,在配置了这条SQL语句后,当对这条数据执行UPDATE操作时会将值自动更新为当前的时间戳,无需我们在代码中更新值。

Spring Boot Json序列化配置

做好了数据库的配置,接下来我们会解决对象JSON序列化时时间字段的格式问题。在对象上添加了 @JsonSerialize 注解后对象便可实现JSON序列化,此时我们可以在Spring Boot的配置文件application.properties中配置上 spring.jackson.date-format=yyyy-MM-dd hh:mm:ss 即可指定全局JSON序列化时的时间格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值