阅读量:0
MyBatis动态标签用于在SQL语句中根据不同条件生成不同的SQL片段,以实现动态的SQL查询。
常用的MyBatis动态标签包括:
<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>
<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>
<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查询更加灵活和可复用。