批量修改,每500条数据更新一次
Posted zztest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量修改,每500条数据更新一次相关的知识,希望对你有一定的参考价值。
// 商品信息,每500条批量更新一次 if(null != updateItemList && updateItemList.size() > 0){ Map<Integer,List<Item>> itemMap = new HashMap<Integer, List<Item>>(); itemMap.put(1, new ArrayList<Item>()); for(Item item : updateItemList){ List<Item> groupItemList = itemMap.get(itemMap.size()); if(groupItemList.size() == 500){ groupItemList = new ArrayList<Item>(); itemMap.put(itemMap.size() + 1, groupItemList); } groupItemList.add(item); } for (Integer key : itemMap.keySet()) { List<Item> groupItemList = itemMap.get(key); itemDao.batchUpdate(groupItemList, id); }
}
sql:
<!-- 批量修改商品信息 --> <update id="batchUpdate" parameterType="java.util.List"> UPDATE tbl_item <trim prefix="set" suffixOverrides=","> <trim prefix="description = case" suffix="end,"> <foreach collection="updateItemList" item="item" index="index"> <if test="item.description != null"> when item_no=#{item.itemNo} then #{item.description} </if> </foreach> </trim> <trim prefix="shelf_life = case" suffix="end,"> <foreach collection="updateItemList" item="item" index="index"> <if test="item.shelfLife != null"> when item_no=#{item.itemNo} then #{item.shelfLife} </if> </foreach> </trim> <trim prefix="update_by = case" suffix="end,"> <foreach collection="updateItemList" item="item" index="index"> when item_no=#{item.itemNo} then #{updateBy} </foreach> </trim> <trim prefix="update_date = case" suffix="end,"> <foreach collection="updateItemList" item="item" index="index"> when item_no=#{item.itemNo} then now() </foreach> </trim> </trim> where item_no in <foreach collection="updateItemList" separator="," item="item" index="index" open="(" close=")"> #{item.itemNo} </foreach> </update>
以上是关于批量修改,每500条数据更新一次的主要内容,如果未能解决你的问题,请参考以下文章