当前位置: 首页 > news >正文

job_log_id(日志ID)批量删除 `sys_job_log` 表

你提供的这段代码是 MyBatis 的 Mapper XML 中的一个删除操作语句,核心需求是根据传入的多个job_log_id(日志ID)批量删除sys_job_log表中的定时任务日志记录。

代码完整解析与优化

首先,我先把这段代码补充完整并优化(补充必要的命名空间、注释等),让它可以直接在项目中使用:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 需替换为你实际的Mapper接口全类名 --><mappernamespace="com.xxx.mapper.SysJobLogMapper"><!-- 根据多个日志ID批量删除定时任务日志 --><!-- parameterType:参数类型,这里传入的是Long类型的数组(array) collection:遍历的集合类型,数组用"array",List集合用"list" item:遍历过程中单个元素的别名 open/close:遍历结果的前后拼接符,这里拼接成 (id1,id2,id3) 格式 separator:元素之间的分隔符 --><deleteid="deleteJobLogByIds"parameterType="Long">DELETE FROM sys_job_log WHERE job_log_id IN<foreachcollection="array"item="jobLogId"open="("separator=","close=")">#{jobLogId}</foreach></delete></mapper>

关键部分解释

  1. 标签与核心属性

    • <delete>:MyBatis 用于定义删除操作的标签,id需与 Mapper 接口中的方法名完全一致(如deleteJobLogByIds),parameterType声明传入参数的类型为Long(因为数组元素是 Long 类型)。
    • DELETE FROM sys_job_log WHERE job_log_id IN:SQL 核心逻辑,通过IN关键字实现批量匹配删除。
  2. 标签(批量操作核心)
    这是 MyBatis 实现批量操作的关键标签,作用是遍历传入的数组/集合,拼接成符合 SQL 语法的参数列表:

    • collection="array":指定遍历的集合类型,如果传入的是数组,必须用 “array”;如果是 List 集合,需改为 “list”
    • item="jobLogId":遍历过程中单个元素的别名,后续通过#{jobLogId}取值(防止 SQL 注入)。
    • open="("/close=")"/separator=",":分别指定遍历结果的前缀、后缀、元素分隔符,最终拼接成(1,2,3)格式。
  3. 对应的 Mapper 接口方法
    要让这段 XML 生效,需在对应的 Mapper 接口中定义如下方法:

    importorg.apache.ibatis.annotations.Param;publicinterfaceSysJobLogMapper{/** * 批量删除定时任务日志 * @param jobLogIds 日志ID数组 */intdeleteJobLogByIds(Long[]jobLogIds);// 若传入的是List集合,方法需改为:// int deleteJobLogByIds(@Param("list") List<Long> jobLogIds);// 同时XML中collection需改为"list"}

总结

  1. 这段代码的核心是通过 MyBatis 的<foreach>标签实现批量删除,避免循环单条删除导致的性能问题。
  2. 关键注意点:collection的值需与传入参数类型匹配(数组用 “array”,List 用 “list”),且必须使用#{}取值防止 SQL 注入。
  3. 接口方法的参数类型需与 XML 中parameterType<foreach>遍历的元素类型一致,否则会报参数绑定异常。
http://www.jsqmd.com/news/230493/

相关文章:

  • 算法竞赛备考冲刺必刷题(C++) | 洛谷 B3758 括号序列
  • 智能侦测数据回流:自动优化模型的闭环
  • Android 原生/混合应用的自动化测试脚本开发,尤其适合需要批量编写测试用例、强调可维护性的场景。
  • 基于多时段动态电价的电动汽车有序充电策略优化MATLAB实现
  • AI侦测模型热更新:云端无缝切换新版本,服务0中断
  • AI异常检测极速版:手机APP+云端分析,1分钟创建监测任务
  • 2025年北京大学计算机考研复试机试真题(解题思路 + AC 代码)
  • 智能安防快速体验:5个预训练模型任选,1元起试用
  • 算法竞赛备考冲刺必刷题(C++) | 洛谷 P1746 离开中山路
  • 隐私合规实体识别:云端隔离环境+数据自动清除,安全审计友好
  • 用HDBSCAN稳住罕见病亚型聚类
  • LUT调色包大全(附下载木木馆长繁花链接)
  • 冷热电气多能互补的微能源网优化调度Matlab实现
  • AI侦测数据标注神器:云端多人协作,效率提升300%
  • 亲测好用!9款AI论文写作软件测评:本科生毕业论文必备
  • AI智能体异常检测实战:10元预算玩转智能运维
  • 多领域实体识别方案:金融/医疗/法律预训练模型,按需切换
  • 5大AI实体侦测模型对比:云端GPU 3小时全测完,省万元显卡钱
  • 智能侦测模型动物园:比较50种算法,云端GPU自动出报告
  • AI侦测模型监控面板:云端Prometheus+Grafana一键部署
  • 没服务器怎么做AI安全?云端检测1小时1块随用随停
  • 实体识别模型调参指南:云端Jupyter免安装,实时可视化效果
  • AI智能体入门必看:2024最新云端体验方案,1块钱起
  • AI威胁检测模型超市:200+预训练模型任选,按小时租用
  • AI侦测模型量化部署:云端转换工具链,INT8精度无损
  • 订单车后台管理系统:功能齐全,支持Excel订单导入,高效管理订单流程
  • AI智能体房地产评估:1小时生成街区分析报告
  • 没GPU怎么跑AI侦测?云端镜像5分钟部署,2块钱玩一下午
  • 体验AI智能体省钱攻略:云端GPU按需付费,比买显卡省万元
  • 零基础玩转AI侦测:云端GPU傻瓜式操作指南