Java

MyBatisでレコードを登録(INSERT文)する方法

2022年8月2日

MyBatisでINSERT文を実行する

MyBatisでINSERT文を使いレコードを登録する方法を紹介します。

本記事で使用するテーブル定義は次のとおり。

物理名論理名データ型NOT NULL説明
idIDBIGINT主キー(AUTO_INCREMENT)
name名前VARCHAR(100)ユーザーの名前
address住所VARCHAR(255)ユーザーの住所
phone電話番号VARCHAR(50)ユーザーの電話番号
update_date更新日時DATETIME最終更新日時
create_date作成日時DATETIME登録日時
delete_date削除日時DATETIME論理削除した日時

スポンサーリンク

SQL文(XMLファイル)

MyBatisのSQL文(XMLファイル)は次のとおりで、<insert>~</insert>内にINSERT文を書くことができます。

[XMLファイル]

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserInfoMapper">

    <!-- 新規登録 -->
    <insert id="save">
        INSERT INTO userInfo
        (
            name
            ,address
            ,phone
            ,update_date
            ,create_date
        )
        VALUES
        (
            #{name}
            ,#{address}
            ,#{phone}
            ,CURRENT_TIMESTAMP
            ,CURRENT_TIMESTAMP
        )
    </insert>

</mapper>

Mapperクラス

MyBatisのMapperクラスは次のとおり。

[Mapperクラス]

package com.example.demo.dao;

import org.apache.ibatis.annotations.Mapper;
import com.example.demo.entity.UserInfo;

/**
 * ユーザー情報 Mapper
 */
@Mapper
public interface UserInfoMapper {

    /**
     * ユーザー情報登録
     * @param userInfo ユーザー情報エンティティ
     */
    void save(UserInfo userInfo);
}

エンティティクラス

データ登録時に使用するエンティティクラスは次のとおり。

[Entityクラス]

package com.example.demo.entity;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;

/**
 * ユーザー情報 Entity
 */
@Data
public class UserInfo implements Serializable {

    /**
     * ID
     */
    private Long id;

    /**
     * 名前
     */
    private String name;

    /**
     * 住所
     */
    private String address;

    /**
     * 電話番号
     */
    private String phone;

    /**
     * 更新日時
     */
    private Date updateDate;

    /**
     * 登録日時
     */
    private Date createDate;

    /**
     * 削除日時
     */
    private Date deleteDate;
}

helpful