datetime
データ内での形式のMySQLは、であるようなの形式:2021-01-14 13:52:00
Javaの自身のjava.sql.Date
、java.sql.Time
そしてjava.sql.Timestamp
日付のこのフォームは、開発に関与しているとき、それは非常に不便であるので、この形で表現することはできません。
Javaが文字列を使用してこの時間形式を格納する場合、データベースの読み取りと書き込みの際に形式間の変換に注意する必要があります。
データベースの読み取り
MySQLライブラリ関数DATE_FORMAT()
を使用してMySQLのdatetime
タイプのデータを処理し、タイプ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の各フィールドの形式を指定するために使用されます。