シナリオ: デバイスの ID、名前、価格を保存する基本的なテーブルがあります。現在、デバイス ID の配列があります。ここで、この配列内のすべてのデバイスの価格を渡された価格に変更し、渡された名前がある場合は、その名前を渡されたパラメータに変更します。mybatisで実現しました。
関係する知識ポイント:
if
set
一部のフィールドを更新するために と組み合わせて使用されますforeach
配列内の要素をバッチ更新するために使用します。
<update id="updateDevice" parameterType="DeviceUpdateCommand">
update device_t
<set>
price = #{price},
<if test="name!=null">
name = #{name},
</if>
</set>
where device_id in
<foreach item="deviceId" collection="deviceIds" open="(" separator="," close=")">
#{deviceId}
</foreach>
</update>
このうち、DeviceUpdateCommand はカスタム Java クラスです。
public DeviceUpdateCommand {
private String name;
private Integer price;
private List<String> deviceIds;
}