mybatis批量插入

一、定义DBExec

java 复制代码
import java.util.List;


public abstract class DBExec<T> {
    public abstract void operate(List<T> list);
}

二、定义BatchDBService

java 复制代码
public interface BatchDBService<T> {
    void exec(int batchSize, List<T> list, DBExec<T> dbExec);
}

三、实现BatchDBService

java 复制代码
@Service
public class BatchDBImpl<T> implements BatchDBService<T> {
    @Override
    public void exec(int batchSize, List<T> list, DBExec<T> dbExec) {
        if (list != null && list.size() > 0) {
            int init = batchSize;// 每隔batchSize条循环一次
            int total = list.size();
            int cycelTotal = total / init;//获取循环次数
            if (total % init != 0) {
                cycelTotal += 1;
                if (total < init) {
                    init = total;
                }
            }

            for (int j = 0; j < cycelTotal; j++) {
                List<T> batchInsertList = new ArrayList<>();
                for (int i = j * init; i < (j + 1) * init && i < list.size(); i++) {
                    batchInsertList.add(list.get(i));
                }
                dbExec.operate(batchInsertList);
            }

        }

    }
}

四、使用

java 复制代码
   BatchDBService batchDBService = new BatchDBImpl();
        DBExec<TestDO> saveDBExec = new DBExec<TestDO>() {
            @Override
            public void operate(List<TestDO> list) {
                testDao.batchInsert(list);
            }
        };
        batchDBService.exec(2000, testList, saveDBExec);
相关推荐
设计师小聂!15 小时前
尚庭公寓----------分页查询
java·开发语言·spring·maven·mybatis
秋秋棠21 小时前
MyBatis延迟加载(Lazy Loading)之“关联查询”深度解析与实践
java·mybatis
秋秋棠1 天前
MyBatis级联查询深度解析:一对多关联实战指南
jvm·tomcat·mybatis
hello 早上好2 天前
MyBatis 动态 SQL、#{}与 ${}区别、与 Hibernate区别、延迟加载、优势、XML映射关系
sql·mybatis·hibernate
我命由我123452 天前
Spring Boot - Spring Boot 集成 MyBatis 分页实现 手写 SQL 分页
java·spring boot·后端·sql·spring·java-ee·mybatis
艺杯羹2 天前
MyBatis 之分页四式传参与聚合、主键操作全解
java·开发语言·maven·mybatis
设计师小聂!2 天前
尚庭公寓-----day1 业务功能实现
java·ide·spring·maven·mybatis
郑州吴彦祖7722 天前
Mybatis的SQL编写—XML方式
java·sql·spring·mybatis
Raners_2 天前
【Java代码审计(2)】MyBatis XML 注入审计
xml·java·安全·网络安全·mybatis
别来无恙1493 天前
Spring Boot + MyBatis 实现用户登录功能详解(基础)
spring boot·后端·mybatis