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