说明:本文章主要是用于批量删除(批量添加修改类似),在Java逻辑中拆分
实现类
@Transactional
public void deleteByIds(){
//集和里面存在了n项,n>1000
List<String> ids = ("1","2","3","4",".....","n");
if(ids != null && () > 0){
(ids);
int sizeNum = ();
//数据分组,每200条分为一组,每组执行批量删除
if(sizeNum > 200){
int con = sizeNum % 200 == 0 ? sizeNum / 200 : sizeNum / 200 + 1;
for(int a = 0; a < con; a++){
int star = a * 200;
int end = (a+1) * 200;
if(end > sizeNum){
List<String> groupList = (star,sizeNum);
(groupList);
} else {
List<String> groupList = (star,end);
(groupList);
}
}
}else {
(ids);
}
}
}
数据层接口
void deleteByIds(@Param("groupList") List<String> groupList);
xml文件
<!--批量删除日志-->
<select >
delete from BUSI_OPERATION_LOG_DATA
where
OPERATE_LOG_ID in
<foreach item="item" index="index" collection="groupList" open="(" separator="," close=")">
#{item}
</foreach>
</select>
批量添加mybatis sql
<!-- 批量添加树按钮关系表 --> <insert parameterType="" useGeneratedKeys="false"> INSERT INTO SF_ENTITY_LIST_MENU (RELATION_ID, ENTITY_LIST_ID, MENU_ID, MENU_INDEX, MENU_DISPLAY, NODE_TYPE, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER, REMARK) <foreach collection ="list" index="index" item="item" separator="union all" > (SELECT #{,jdbcType=VARCHAR}, #{,jdbcType=VARCHAR}, #{,jdbcType=VARCHAR}, #{,jdbcType=DECIMAL}, #{,jdbcType=DECIMAL}, #{,jdbcType=VARCHAR}, #{,jdbcType=TIMESTAMP}, #{,jdbcType=VARCHAR},#{,jdbcType=TIMESTAMP}, #{,jdbcType=VARCHAR}, #{,jdbcType=VARCHAR} FROM DUAL) </foreach > </insert>
记录一下。。。。。。。。