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>

相关推荐
像我这样帅的人丶你还6 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩6 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia6 小时前
Mybatis的日志输入
java
亦暖筑序8 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户2986985301411 小时前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao11 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿12 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67512 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly12 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity12 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端