MyBatis动态标签的用法是什么

1316
2024/2/19 15:08:12
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

MyBatis动态标签用于在SQL语句中根据不同条件生成不同的SQL片段,以实现动态的SQL查询。

常用的MyBatis动态标签包括:

  1. <if>标签:用于在SQL语句中添加条件判断,默认情况下,如果条件为false,则该标签中的SQL片段将被忽略。

示例:

<select id="getUserList" resultType="User">
  SELECT *
  FROM users
  <where>
    <if test="name != null">
      AND name = #{name}
    </if>
    <if test="age != null">
      AND age = #{age}
    </if>
  </where>
</select>
  1. <choose><when><otherwise>标签:用于提供多个选择条件,类似于Java中的switch语句。

示例:

<select id="getUserList" resultType="User">
  SELECT *
  FROM users
  <where>
    <choose>
      <when test="name != null">
        AND name = #{name}
      </when>
      <when test="age != null">
        AND age = #{age}
      </when>
      <otherwise>
        AND status = 'active'
      </otherwise>
    </choose>
  </where>
</select>
  1. <trim><set>标签:用于在生成动态SQL时添加条件判断,以及去除生成SQL中的不必要的逗号或AND关键字。

示例:

<update id="updateUser" parameterType="User">
  UPDATE users
  <set>
    <if test="name != null">
      name = #{name},
    </if>
    <if test="age != null">
      age = #{age},
    </if>
  </set>
  WHERE id = #{id}
</update>

通过使用这些动态标签,我们可以根据不同的条件生成不同的SQL语句,使得SQL查询更加灵活和可复用。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: MyBatis的sqlId如何影响性能