MyBatis データをバッチ更新する方法

MyBatisはデータを一括更新するためのメソッドをいくつか提供しており、一般的なものは次の通りです。

  1. foreachタグを使って、コレクションを反復処理し、各要素をパラメータとしてSQL文に渡して一括更新する。例えば、
<update id="batchUpdate" parameterType="java.util.List">
    UPDATE table SET column1 = #{item.value}
    <foreach collection="list" item="item" separator=",">
        WHERE id = #{item.id}
    </foreach>
</update>
  1. choose-when句を使ってください:choose-when句を使うことで条件に応じて異なるSQL文を選択することができ、バルク更新も可能です。例:
<update id="batchUpdate" parameterType="java.util.List">
    <foreach collection="list" item="item" separator=";">
        <choose>
            <when test="item.value != null">
                UPDATE table SET column1 = #{item.value} WHERE id = #{item.id}
            </when>
            <otherwise>
                UPDATE table SET column1 = NULL WHERE id = #{item.id}
            </otherwise>
        </choose>
    </foreach>
</update>
  1. SQLラベル機能を使用すると、SQL文を事前に定義し、それを他のSQL文で参照して一括更新できます。例えば:
<sql id="batchUpdateSql">
    UPDATE table SET column1 = #{item.value} WHERE id = #{item.id}
</sql>

<update id="batchUpdate" parameterType="java.util.List">
    <foreach collection="list" item="item" separator=";">
        <include refid="batchUpdateSql"/>
    </foreach>
</update>

これらはMyBatisでよく使われるデータの一括変更の方法ですので、必要に応じて適切な方法を選択して使用できます。

bannerAds