MyBatisでDELETE文を実行する方法
MyBatisでDELETE文を使いレコードを物理削除する方法を紹介します。
SQL文(XMLファイル)
MyBatisのSQL文(XMLファイル)は次のとおりで、<delete>~</delete>内にDELETE文を書くことができます。
[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"> <!-- 論理削除 --> <delete id="delete"> DELETE FROM userinfo WHERE id = #{id} </delete> </mapper>
Mapperクラス
MyBatisのMapperクラスは次のとおり。
[Mapperクラス]
package com.example.demo.dao; import org.apache.ibatis.annotations.Mapper; /** * ユーザー情報 Mapper */ @Mapper public interface UserInfoMapper { /** * ユーザー情報の物理削除 * @param id ID */ void delete(Long id); }
今回の例ではXMLファイルを使いSQL文を実行していますが、XMLファイルは利用せず@DeleteアノテーションでMapperクラスに直接SQL文を書くこともできます。
package com.example.demo.dao; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; /** * ユーザー情報 Mapper */ @Mapper public interface UserInfoMapper { /** * ユーザー情報の物理削除 * @param id ID */ @Delete("DELETE FROM userinfo WHERE id = #{id}") void delete(Long id); }
helpful
この記事は役に立ちましたか?