<update id="updateBatch" parameterType="java.util.List">
UPDATE DB.INVOICE <!-- 修改的表明需要改 -->
<trim prefix="SET" suffixOverrides=",">
<trim prefix="INVOICE_NO = CASE" suffix="END,"> <!-- prefix INVOICE_NO 需要修改 -->
<foreach collection="list" item="item" index="index">
<if test="item.invoiceNo!=null"><!-- test中 invoiceNo 需要修改 -->
<!-- INVOICE_ID SERIALNO 是已知条件需要修改 ,THEN后面是即将要set的值 -->
WHEN INVOICE_ID=#{item.invoiceId} AND SERIALNO=#{item.serialno} THEN #{item.invoiceNo}
</if>
</foreach>
</trim>
<trim prefix="INVOICE_CODE = CASE" suffix="END," >
<foreach collection="list" item="item" index="index">
<if test="item.invoiceCode!=null">
WHEN INVOICE_ID=#{item.invoiceId} AND SERIALNO=#{item.serialno} THEN #{item.invoiceCode}
</if>
</foreach>
</trim>
</trim>
WHERE
<foreach collection="list" item="item" index="index" open=" (" separator= ") OR (" close=")">
INVOICE_ID=#{item.invoiceId} AND SERIALNO=#{item.serialno}
</foreach>
</update>注意建议300-500条以内,避免sql过长
