MyBatis set要素とは?動的SQLでの使い方を解説
MyBatisには、更新するフィールドとその値を指定するためにsetタグが使用されます。setタグに含まれるサブタグは、カンマで区切られた代入文を生成し、データベースレコードのフィールドの値を更新するために使用されます。
例えば、以下の更新ステートメントがあると仮定します。
<update id="updateUser" parameterType="User">
UPDATE users
<set>
<if test="name != null">
name = #{name},
</if>
<if test="age != null">
age = #{age},
</if>
</set>
WHERE id = #{id}
</update>
上記の例では、setタグにはnameとageフィールドが空でないかどうかを判断する2つのif条件判定サブタグが含まれており、それに応じて代入文が生成されます。最終的に生成される更新文は以下の通りです:
UPDATE users
SET
name = #{name},
age = #{age}
WHERE id = #{id}
setタグを使用することで、パラメーターを受け取り、動的に更新クエリを生成し、柔軟な更新操作を実現することができます。