Java 分批插入

public void saveBatchData(List<Student> list) {

int len = 0;

if(CollectionUtils.isNotEmpty(list)){

if(list.size()%400 == 0){

len = list.size()/200;

}else{

len = list.size()/200+1;

}

}

for(int i=0;i<len;i++) {

List<Student> lists = new ArrayList<>();

int max = 200 * (i + 1);

if (i == len - 1) {

max = list.size();

}

for (int j =200 * i; j < max; j++) {

Student stu = list.get(j);

stu.setDeletedFlag(0);

lists.add(stu);

}

studentDao.saveData(lists);

}

}

<insert id="saveData" parameterType="java.util.List">

INSERT INTO sys_student(

name,

created_staffId,

created_time,

modified_staffId,

modified_time,

deleted_flag

)VALUES

<foreach collection="list" item="item" index="index" separator=",">

(#{item.name},

#{item.createdStaffId},

#{item.createdTime},

#{item.modifiedStaffId},

#{item.modifiedTime},

#{item.deletedFlag})

</foreach>

</insert>

<update id="updateData" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";">

UPDATE sys_student SET

name = #{item.name},

modified_staffId = #{item.modifiedStaffId},

modified_time = #{item.modifiedTime}

WHERE id = #{item.id}

</foreach>

</update>

相关推荐
Brookty9 分钟前
Java线程创建与运行全解析
java·开发语言·后端·学习·java-ee·线程
野生程序员y26 分钟前
spring容器的bean是单例还是多例的?线程安全吗?
java·后端·spring
星辰大海的精灵42 分钟前
Java 线程池的工作原理及实践
java·后端·架构
我命由我123451 小时前
Spring Boot - Spring Boot 集成 MyBatis 分页实现 手写 SQL 分页
java·spring boot·后端·sql·spring·java-ee·mybatis
天天摸鱼的java工程师1 小时前
每天导入100万数据导致数据库死锁?
java·后端·面试
吗喽对你问好1 小时前
java 知识点表格
java·开发语言
Xxtaoaooo1 小时前
手撕Spring底层系列之:IOC、AOP
java·后端·spring·spring框架·底层源码剖析
m0_535064601 小时前
C++类模版与友元
java·c++·算法
Seven972 小时前
工作中常见的OOM?你了解JVM调优吗?
java
草履虫建模2 小时前
若依框架下前后端分离项目交互流程详解
java·前端·javascript·spring boot·spring cloud·intellij-idea·交互