大数据量批量插入、更新优化方法

当我们插入、更新大量数据时,可以使用批量插入和批量更新的方法进行优化。具体代码如下:

一、构建一个组迭代器:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

public class GroupIterator {
    private List list;
    private int numInGroup;
    private int cursor = 0;

    public GroupIterator(Collection list, int num) {
        this.list = new ArrayList(list);
        this.numInGroup = num;
    }

    public GroupIterator(E[] elements, int num) {
        this.list = new ArrayList();
        this.list.addAll(Arrays.asList(elements));
        this.numInGroup = num;
    }

    public boolean hasNext() {
        return this.cursor != this.list.size();
    }

    public List next() {
        List subElements = new ArrayList(this.list.subList(this.cursor, Math.min(this.cursor + this.numInGroup, this.list.size())));
        this.cursor = Math.min(this.cursor + this.numInGroup, this.list.size());
        return subElements;
    }

    public void add(E element) {
        this.list.add(element);
    }

    public void addAll(Collection elements) {
        this.list.addAll(elements);
    }
}

二、使用组迭代器进行批量插入、更新:

//一次批量插入10条记录
GroupIterator iter = new GroupIterator<>(insertList,10);
   while (iter.hasNext()) {
        List groupItems = iter.next();
        userDao.insertUers(groupItems);
   }

根据实际情况调整每次插入、更新数量。

你可能感兴趣的:(java,java,开发语言)