1. 程式人生 > >mybatis 批量彩38平臺租用搭建詳解

mybatis 批量彩38平臺租用搭建詳解

mys 性能 update語句 批量 字段 close param 性能比較 通過

1 更新單條記錄 彩38平臺租用搭建(企 娥:217 1793 408)

UPDATE course SET name = ‘course1‘ WHEREid = ‘id1‘;

2 更新多條記錄的同一個字段為同一個值

UPDATE course SET name=‘course1‘ WHERE id in(‘id1‘,‘id2‘,‘id3);

3 更新多條記錄為多個字段為不同的值

比較普通的寫法,是通過循環,依次執行update語句。

Mybatis寫法如下:

<update id="updateBatch" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update course
<set>
name=${item.name}
</set>
where id = ${item.id}
</foreach>
</update>
一條記錄update一次,性能比較差,容易造成阻塞。

MySQL沒有提供直接的方法來實現批量更新,但可以使用case when語法來實現這個功能。

UPDATE course
SET name = CASE id
WHEN 1 THEN ‘name1‘
WHEN 2 THEN ‘name2‘
WHEN 3 THEN ‘name3‘
END,
title = CASE id
WHEN 1 THEN ‘New Title 1‘
WHEN 2 THEN ‘New Title 2‘
WHEN 3 THEN ‘New Title 3‘
END
WHERE id IN (1,2,3)
這條sql的意思是,如果id為1,則name的值為name1,title的值為New Title1;依此類推。

mybatis 批量彩38平臺租用搭建詳解