Java

MyBatisでレコードを更新(UPDATE文)する方法

MyBatisでUPDATE文を実行する

MyBatisでUPDATE文を使いレコードを更新する方法を紹介します。

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

物理名 論理名 データ型 NOT NULL 説明
id ID BIGINT 主キー(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ファイル)は次のとおりで、<update>~</update>内にUPDATE文を書くことができます。

[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">

    <!-- 更新 -->
    <update id="update">
        UPDATE
            userinfo
        SET
            name = #{name}
            ,address = #{address}
            ,phone = #{phone}
            ,update_date = CURRENT_TIMESTAMP
        WHERE
            id = #{id}
    </update>

</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 update(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;
}