MySQL中datetime数据类型和java中的String类型之间的转换

MySQL中的datetime格式的数据是行如:2021-01-14 13:52:00的形式,Java自带的java.sql.Datejava.sql.Timejava.sql.Timestamp都无法表示出这种形式,因此在开发时涉及到这种形式的日期时很不方便。

若果Java用String来存储这种时间格式,那么在读写数据库的时候就需要注意格式之间的转换。

读取数据库

使用MySQL的库函数DATE_FORMAT()对MySQL中datetime类型的数据进行处理得到String类型的数据。

select DATE_FORMAT(`create_time`, "%y-%m-%d %H:%i:%s")as create_time from test_table;

在Mapper中定义resultMap时指定如下

<id column="create_time" property="createTime" jdbcType="TIMESTAMP"/>

写入数据库

将String类型的yyyy-MM-dd HH:mm:ss格式的时间写入MySQL中datetime类型的字段中,可以直接写入,不需要格式之间的转换。

还可以如下使用lombok和Json相关工具

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = true)
public class User {
    
    

    private int id;

    private String name;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
    private Date bir;

    private String sex;

    private String address;
}

@JsonFormat来指定返回的Json中各字段的格式。

猜你喜欢

转载自blog.csdn.net/qq_27198345/article/details/112605258