mybatis动态SQL标签怎么使用

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

<if>标签:用于条件判断,只有当条件成立时才会执行其中的SQL语句。

<select id="selectUser" parameterType="int" resultType="User">
  SELECT * FROM user
  WHERE 1=1
  <if test="id != null">
    AND id = #{id}
  </if>
</select>

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

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

<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语句。

阅读剩余
THE END