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片段

相关推荐
长不胖的路人甲13 小时前
Serial 串行、Parallel 并行、CMS 并发收集器
java·开发语言·jvm
z落落14 小时前
StudentInfo表 分页、增删改 存储过程+C# WinForm 存储过程实现分页和增删改查
数据库·sql·mysql
IT_Octopus14 小时前
Spring Boot 线程池关闭:destroyMethod 的作用与最佳实践
java·spring boot·后端
用户31268748772014 小时前
分页插件到底怎么拦截 SQL?MyBatis-Plus 插件机制原理一次讲透
mybatis
亦暖筑序14 小时前
AgentScope-Java 入门:完善 Vue 前端、发布 GitHub,并规划下一步
java·前端·vue.js
wddptwd2814 小时前
android studio 报错怎么处理 java.lang.NullPointerException
android·java·android studio
霸道流氓气质15 小时前
分布式系统中接口时序不确定性处理
java·开发语言·分布式
深入云栈15 小时前
Netty 4.2.x 源码深度解析 (四):HashedWheelTimer —— 时间轮定时调度算法
java
带刺的坐椅15 小时前
别再把 Coding Agent 当智能补全了:SolonCode 想做的是数字员工
java·solon·codex·claudecode·opencode·soloncode
大模型码小白15 小时前
在 Windows 下 Codex 安装、配置与使用详细指南
java·人工智能·windows