温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

动态SQL支持哪些标签

发布时间:2026-09-08 21:00:05 来源:亿速云 阅读:94 作者:小樊 栏目:数据库

动态 SQL(通常指 MyBatis 中的动态 SQL)主要支持以下标签,用于根据不同条件拼接或调整 SQL 语句:

1. <if>

最常用,用于条件判断。

<if test="name != null">
    AND name = #{name}
</if>

2. <choose><when><otherwise>

类似于 Java 中的 switch-case-default

<choose>
    <when test="type == 1">AND type = 1</when>
    <when test="type == 2">AND type = 2</when>
    <otherwise>AND type = 0</otherwise>
</choose>

3. <trim>

用于去除多余的前缀或后缀(如 ANDOR、逗号等)。

<trim prefix="WHERE" prefixOverrides="AND |OR ">
    ...
</trim>

4. <where>

智能 WHERE 标签,自动处理开头的 AND / OR

<where>
    <if test="name != null">AND name = #{name}</if>
</where>

5. <set>

用于 UPDATE 语句,自动去除末尾逗号。

<set>
    <if test="name != null">name = #{name},</if>
</set>

6. <foreach>

用于遍历集合(如 IN 查询、批量插入)。

<foreach collection="ids" item="id" open="(" close=")" separator=",">
    #{id}
</foreach>

7. <bind>

在 SQL 外创建变量,常用于模糊查询。

<bind name="pattern" value="'%' + name + '%'" />

8. <sql><include>

用于 SQL 片段复用。

<sql id="Base_Column">id, name</sql>
<include refid="Base_Column"/>

总结常用标签: ifchoose/when/otherwisetrimwheresetforeachbindsql/include

如果你指的是 其他框架(如 MyBatis-Plus、Spring Data JPA、Hibernate) 的动态 SQL,也可以告诉我,我可以补充对应内容。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI