DAO:
/**
* measures数据库表的映射类
* @author zx
* @date 2018年2月2日 下午4:17:31
* @param measures
* @return
*/
int updateMeasureDisplay(@Param("measures")List<Measure> measures);
mapper(xml文件)
<update id="updateMeasureDisplay" parameterType="Measure">
update measure set DISPLAY =
<foreach collection="measures" item="item" index="index"
separator=" " open="case MEASURE_ID" close="end">
when #{item.measureId} then #{item.display}
</foreach>
where MEASURE_ID in
<foreach item="item" index="index" collection="measures" open="("
separator="," close=")">
#{item.measureId,jdbcType=VARCHAR}
</foreach>
</update>
根据MEASURE_ID去更新DISPLAY(多条更新);
转换成SQL语句就是(假设两条数据):
UPDATE measure
SET DISPLAY = CASE MEASURE_ID
WHEN MEASURE_ID1 THEN DISPLAY1
WHEN MEASURE_ID2 THEN DISPLAY2
END
WHERE
MEASURE_ID IN (MEASURE_ID1,MEASURE_ID2 )
使用的是sql中CASE…WHEN…THEN