批量更新
<h5>批量更新</h5>
<h5>1.sql:</h5>
<pre><code>#批量更新
UPDATE yd_org_purchase_region
SET
village_name = CASE id
WHEN 202 THEN "大兴村"
WHEN 203 THEN "大兴村"
WHEN 204 THEN "大兴村"
END,
group_name = CASE id
WHEN 202 THEN "第一组"
WHEN 203 THEN "第二组"
WHEN 204 THEN "第三组"
END
WHERE id in(202,203,204);</code></pre>
<h5>2.mybatis:</h5>
<pre><code><update id="batchUpdateStoreHouse">
UPDATE yd_organization
SET org_name = CASE id
<foreach collection="ydOrganizations" item="org">
WHEN #{org.id} THEN #{org.orgName}
</foreach>
END,
storehouse_volume = CASE id
<foreach collection="ydOrganizations" item="org">
WHEN #{org.id} THEN #{org.storehouseVolume}
</foreach>
END,
update_time=NOW()
WHERE
id IN (
<foreach collection="ydOrganizations" item="org" index="index" separator=",">
#{org.id}
</foreach>
)
</update></code></pre>
<h5>3.java:</h5>
<pre><code>public void batchUpdateStoreHouse(List<YdOrganization> storeHouseList) {
try {
if (storeHouseList != null && storeHouseList.size() > 0) {
List<YdOrganization> list = new ArrayList<>();
for (YdOrganization ydOrganization : storeHouseList) {
list.add(ydOrganization);
if (list.size() % 30 == 0) {
ydOrganizationService.batchUpdateStoreHouse(list);
list.clear();
}
}
ydOrganizationService.batchUpdateStoreHouse(list);
}
} catch (Exception e) {
log.error("", e);
}
}</code></pre>