溫馨提示×

mybatis動態(tài)SQL標簽怎么使用

小億
88
2023-11-29 19:23:30
欄目: 云計算

MyBatis提供了一些動態(tài)SQL標簽,可以根據(jù)條件來動態(tài)地生成SQL語句。以下是常用的動態(tài)SQL標簽和它們的使用方法:

  1. <if>標簽:用于條件判斷,只有當條件成立時才會執(zhí)行其中的SQL語句。

    <select id="selectUser" parameterType="int" resultType="User">
      SELECT * FROM user
      WHERE 1=1
      <if test="id != null">
        AND id = #{id}
      </if>
    </select>
    
  2. <choose>、<when><otherwise>標簽:類似于Java中的switch語句,可以根據(jù)條件選擇執(zhí)行不同的SQL語句。

    <select id="selectUser" parameterType="int" resultType="User">
      SELECT * FROM user
      WHERE 1=1
      <choose>
        <when test="id != null">
          AND id = #{id}
        </when>
        <when test="name != null">
          AND name = #{name}
        </when>
        <otherwise>
          AND age > 18
        </otherwise>
      </choose>
    </select>
    
  3. <foreach>標簽:用于循環(huán)遍歷集合或數(shù)組,并生成相應的SQL語句。

    <select id="selectUsers" parameterType="List" resultType="User">
      SELECT * FROM user
      WHERE id IN
      <foreach collection="ids" item="id" open="(" separator="," close=")">
        #{id}
      </foreach>
    </select>
    
  4. <where><set>標簽:用于動態(tài)生成WHERE和SET子句。

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

以上是一些常用的動態(tài)SQL標簽的使用方法,根據(jù)具體的需求選擇合適的標簽來動態(tài)生成SQL語句。

0