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;
}
helpful
この記事は役に立ちましたか?