数据库中的时间字段定义为 datetime ,Java 代码中对应的字段定义如下:
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTime;
<result column="create_time" jdbcType="DATE" property="createTime" />
......
<if test="createTime != null">
#{createTime,jdbcType=DATE},
</if>
......
Mybatis 的xml文件中定义字段类型是 Date,结果导致插入数据库的时间只有日期,没有时间(没有时分秒): 2021-10-13 00:00:00
问题是:
在JDBC的类型中, 如果mybatis定义的时间格式是 DATE,对应的格式是 yyyy-MM-dd,TIMESTAMP的格式是 yyyy-MM-dd HH:mm:ss ,有部分实体类型是根据数据库库自动生成了DATE类型,所以造成了时分秒丢失 。
修改方式:
mybatis中定义字段类型为
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
......
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
......