MyBatis-动态SQL

<if>标签

用于判断条件是否成立,使用test属性进行条件判断,如果条件为true,则拼接SQL

<where>标签

where元素只会在子元素有内容的情况下插入where子句,而且会自动去除子句的开头的AND或OR

复制代码
<where>
    <if test="name!=null">
        name like concat('%',#(name),"%")
    </if>
</where>

<set>:动态地在行首插入SET关键字,并会删掉额外的逗号(用在update语句中)

<foreach>标签

SQL语句

delete from emp where id in (1,2,3);

接口方法:

public void deleteBylds(List<Integer> ids);

XML映射文件:

<delete id ="deleteBylds">

delete from emp where id in

<foreach collection ="ids" item="id" sepatator="," open="(" close=")">

#{id}

</foreach>

</delete>

属性:

collection:集合名称

item:集合遍历出来的元素

sepatator:每一次遍历使用的分隔符

open:遍历开始前拼接的片段

close:遍历结束后拼接的片段

sql片段

<sql>:定义可重用的SQL片段

<include>:通过属性refid,指定包含的sql片段

相关推荐
皙然3 小时前
深入拆解MESI协议:从原理到实战,搞懂CPU缓存一致性的核心机制
java·缓存
愤豆3 小时前
02-Java语言核心-语法特性-注解体系详解
java·开发语言·python
x-cmd3 小时前
[x-cmd] 终端里的飞书:lark-cli,让 AI Agent 拥有“实体办公”能力
java·人工智能·ai·飞书·agent·x-cmd
吾日三省Java4 小时前
SpringBoot锁设计:让你的系统不再“抢”出问题!
java·spring boot·设计思路
XXOOXRT4 小时前
Ubuntu搭建Java项目运行环境(JDK17+MySQL8.0)超详细教程
java·linux·mysql·ubuntu
m0_719084114 小时前
启动命令111
java
客卿1234 小时前
用两个栈实现队列
android·java·开发语言
java1234_小锋4 小时前
Java高频面试题:谈谈你对SpringBoot的理解?
java·开发语言·spring boot
空空潍4 小时前
Spring AI 实战系列(三):多模型共存+双版本流式输出
java·人工智能·spring
彭于晏Yan4 小时前
SpringBoot整合ECC实现文件签名与验签
java·spring boot·后端