导入大量数据

前言

提示:导入一定要确定导入的数据类型和导入的顺序,我这里用的是自己封装好的工具,导入我提供出来大家可以参考。

二、用list导入每次导入一千条

代码如下(示例):

 	/**
 	 * 1000条新增一次
     * 批量添加方法
     */
    @Async//异步注解
    @Transactional(rollbackFor = RuntimeException.class)//事务注解
    public void insertBatch(List<dog> str) {
        int listSize = str.size();
        int toIndex = 1000;
        for (int i = 0; i <listSize; i += 1000) {
         //作用为toIndex最后没有toIndex条数据则剩余几条newList中就装几条
            if (i + 1000 > listSize) {
                toIndex = listSize - i;
            }
            //分割lst
            List<dog> newList = str.subList(i, i + toIndex);
            //写入添加方法,需要写你的新增方法,把newList分切后的数据新增进入数据库。
            service.insertBatch(newList )
        }
    }



    public Result insertBatchs(List<dog> flows){
        int size = flows.size();
        if(size <= 1000){
            return super.insertBatch(flows);
        }
        ListQueue<dog> queue = new ListQueue<>();
        for (int i = 0; i < flows.size(); i++) {
            queue.add(flows.get(i));
            if(queue.count() % 1000 == 0 || i == size - 1){
                super.insertBatch(queue.getAll());
                queue=new ListQueue<>();
            }
        }
        return Result.success();
    }
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐