目录

关于mybatis查询时,时间字段的映射问题

关于mybatis查询时,时间字段的映射问题


1.mysql中,关于时间的两种类型

1.1 date

格式:2002-09-23

特点:只存储年、月、日,不存储时、分、秒

对应JAVA的类型: java.sql.Date

1.2 datetime

格式:2025-03-09 12:37:09

特点:存储年、月、日、时、分、秒

可以对应的JAVA类型(不唯一): java.time.LocalDateTime

2.mybatis从mysql数据库查询出上述两种类型的字段后,映射到Java实体类时的问题

问题描述:如下面3张图所示,我们数据库中的datetime类型的字段,格式明明是年-月-日 时:分:秒, 但是使用apifox查到的数据却多了个T。

数据库的字段:

https://i-blog.csdnimg.cn/direct/aec684eace1043d59bd705f5d54e584b.png

java实体类的对应属性:

https://i-blog.csdnimg.cn/direct/aeb997fed2c14ef483399b18f831e20f.png

使用apifox查询后端接口时,得到的数据:

https://i-blog.csdnimg.cn/direct/28fb522a85d043ab8f31b70909cef00c.png

解决方案:在Java实体类的对应属性上,添加一个注解@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)

https://i-blog.csdnimg.cn/direct/f25ec9523d7b4886aaddbd8df0f4b68e.png

格式化后的效果:

https://i-blog.csdnimg.cn/direct/a3231435c47a4a9a99225d7c49b22417.png

同理:如果是Date类型的属性,应该加上注解

@JsonFormat(pattern = "yyyy-MM-dd")

3.结语

以上就是关于mybatis查询时,时间字段的映射问题。

喜欢本篇文章的话,可以留个免费的关注~~