MySQLの日時データ型とJavaの文字列型の間の変換

datetimeデータでの形式のMySQLは、であるようなの形式:2021-01-14 13:52:00Javaの自身のjava.sql.Datejava.sql.Timeそしてjava.sql.Timestamp日付のこのフォームは、開発に関与しているとき、それは非常に不便であるので、この形で表現することはできません。

Javaが文字列を使用してこの時間形式を格納する場合、データベースの読み取りと書き込みの際に形式間の変換に注意する必要があります。

データベースの読み取り

MySQLライブラリ関数DATE_FORMAT()使用してMySQLdatetimeタイプのデータ処理しタイプStringのデータ取得します。

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

マッパーで定義するresultMap場合は、次のように指定してください

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

データベースに書き込む

文字列型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