温馨提示×

mybatis动态SQL标签怎么使用

小亿
85
2023-11-29 19:23:30
栏目: 云计算

MyBatis提供了一些动态SQL标签,可以根据条件来动态地生成SQL语句。以下是常用的动态SQL标签和它们的使用方法:

  1. <if>标签:用于条件判断,只有当条件成立时才会执行其中的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语句,可以根据条件选择执行不同的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>标签:用于循环遍历集合或数组,并生成相应的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>标签:用于动态生成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>
    

以上是一些常用的动态SQL标签的使用方法,根据具体的需求选择合适的标签来动态生成SQL语句。

0