批量删除
<delete id="deleteUserPostById" parameterType="Long">
delete from sys_user_post where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</delete>
批量逻辑删除
//mapper.xml文件
<delete id="deleteFileObjectByIds" parameterType="Long">
update file_object set del_flag = '1',update_time =CURRENT_TIMESTAMP
where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
//Ctroller
@GetMapping("/batchDelete")
public AjaxResult projectFilesBatchDelete(Long[] ids)
{
try {
//遍历前端传入的ids数组
for(Long id : ids){
FileObject fileObject = fileObjectMapper.selectFileObjectById(id);
//删除minio中的文件
minioClient.removeObject(MINIO_BUCKET_PF,fileObject.getName());
}
fileObjectMapper.deleteFileObjectByIds(ids);
return AjaxResult.success("删除成功!");
} catch (MinioException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
return AjaxResult.error("删除失败!");
}
批量添加(也可用于关联表的数据添加)
<insert id="batchUserPostById">
insert into sys_user_post(user_id, post_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.postId})
</foreach>
</insert>
批量更新
<update id="batchUsersById" parameterType="Long">
update sys_user set del_flag = '2' where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</update>
这篇博客介绍了如何使用XML映射文件进行数据库的批量操作,包括逻辑删除、物理删除、批量插入和更新。示例中展示了Mapper接口的方法实现,如根据ID数组删除文件对象,并在删除后从MinIO存储中移除对应文件。
4204

被折叠的 条评论
为什么被折叠?



