批量新增,每500条数据新增一次
Posted zztest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量新增,每500条数据新增一次相关的知识,希望对你有一定的参考价值。
直接上代码
// 商品信息,每500条批量新增一次 if(null != itemList && itemList.size() > 0){ Map<Integer,List<Item>> itemMap = new HashMap<Integer, List<Item>>(); itemMap.put(1, new ArrayList<Item>()); for(Item item : itemList){ 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.batchInsert(groupItemList, id); } }
SQL:
<!-- 批量新增商品信息 --> <insert id="batchInsert"> INSERT INTO tbl_item( item_no ,description ) VALUES <foreach collection ="itemList" item="item" separator =","> ( #{item.itemNo} ,#{item.description} ) </foreach> </insert>
说说我遇到的问题:第一个就是本来是用的List分组,每500条数据一组,后来拿1000条数据测试的时候发现,list的size为2没问题,但是两组数据相同,且都是第501到1000条,一直没搞明白,后来换了map分组就没问题了,请知道的大佬指教下;
第二个问题就是 new完map后直接put值:itemMap.put(0, new ArrayList<Item>());直接空指针,改为itemMap.put(1, new ArrayList<Item>())
以上是关于批量新增,每500条数据新增一次的主要内容,如果未能解决你的问题,请参考以下文章