直接上代码
// 商品信息,每500条批量新增一次 if(null != itemList && itemList.size() > 0){ Map- > itemMap = new HashMap
>(); itemMap.put(1, new ArrayList - ()); for(Item item : itemList){ List
- groupItemList = itemMap.get(itemMap.size()); if(groupItemList.size() == 500){ groupItemList = new ArrayList
- (); itemMap.put(itemMap.size() + 1, groupItemList); } groupItemList.add(item); } for (Integer key : itemMap.keySet()) { List
- groupItemList = itemMap.get(key); itemDao.batchInsert(groupItemList); } }
SQL:
INSERT INTO tbl_item( item_no ,description ) VALUES ( #{item.itemNo} ,#{item.description} )
说说我遇到的问题:第一个就是本来是用的List分组,每500条数据一组,后来拿1000条数据测试的时候发现,list的size为2没问题,但是两组数据相同,且都是第501到1000条,一直没搞明白,后来换了map分组就没问题了,请知道的大佬指教下;
第二个问题就是 new完map后直接put值:itemMap.put(0, new ArrayList<Item>());直接空指针,改为itemMap.put(1, new ArrayList<Item>())