news 2026/4/23 15:01:51

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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>遍历的元素类型一致,否则会报参数绑定异常。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:05:44

没预算怎么做AI安全?云端按秒计费拯救小团队

没预算怎么做AI安全&#xff1f;云端按秒计费拯救小团队 1. 引言&#xff1a;小团队的AI安全困境 创业公司发现竞争对手纷纷部署了AI安全防护系统&#xff0c;而自己既缺乏专业技术团队&#xff0c;又面临高昂的外包开发费用。传统安全方案动辄数十万的年费让初创企业望而却步…

作者头像 李华
网站建设 2026/4/19 15:54:23

AI侦测保姆级指南:小白10分钟上手云端GPU服务

AI侦测保姆级指南&#xff1a;小白10分钟上手云端GPU服务 引言&#xff1a;为什么你需要云端GPU&#xff1f; 作为一名转行AI的产品经理&#xff0c;你可能经常遇到这样的场景&#xff1a;网上看到某个酷炫的AI侦测技术&#xff0c;兴冲冲下载模型后却遇到"CUDA不可用&q…

作者头像 李华
网站建设 2026/4/23 12:48:59

多领域实体识别方案:金融/医疗/法律预训练模型,按需切换

多领域实体识别方案&#xff1a;金融/医疗/法律预训练模型&#xff0c;按需切换 引言&#xff1a;为什么需要多领域实体识别&#xff1f; 想象你是一名IT服务商的技术负责人&#xff0c;客户遍布金融、医疗、法律等多个行业。每当新客户提出需求时&#xff0c;都需要从头训练…

作者头像 李华
网站建设 2026/4/23 14:13:15

AI监控模型实测对比:云端GPU 2小时省下万元显卡钱

AI监控模型实测对比&#xff1a;云端GPU 2小时省下万元显卡钱 1. 为什么需要云端GPU测试AI监控模型 作为安防行业的CTO&#xff0c;您在采购新的AI监控算法时一定遇到过这样的困境&#xff1a;各家供应商都说自己的模型效果最好&#xff0c;但实际测试需要购买昂贵的显卡设备…

作者头像 李华
网站建设 2026/4/23 10:11:34

AI行为分析省钱攻略:按需GPU比买显卡省90%,1小时1块

AI行为分析省钱攻略&#xff1a;按需GPU比买显卡省90%&#xff0c;1小时1块 引言&#xff1a;当AI私活遇上硬件瓶颈 最近有位自由开发者朋友接了个商场异常行为检测的私活&#xff0c;客户要求先看演示效果再签合同。但问题来了——他的MacBook根本跑不动那些AI模型&#xff…

作者头像 李华
网站建设 2026/4/23 10:10:05

实体识别模型新手指南:免环境配置,3个命令跑通全流程

实体识别模型新手指南&#xff1a;免环境配置&#xff0c;3个命令跑通全流程 引言 作为一名Java工程师&#xff0c;突然被抽调参与AI项目时&#xff0c;面对Python虚拟环境、pip install和各种依赖冲突&#xff0c;难免会感到头疼。实体识别&#xff08;Named Entity Recogni…

作者头像 李华