MyBatis的動態SQL是一種可以根據條件生成不同SQL語句的功能,可以根據不同的條件生成不同的SQL語句,以實現動態性的SQL操作。
MyBatis的動態SQL主要是通過使用XML文件中的if、choose、when、otherwise、foreach等標簽來實現的。以下是一些常用的動態SQL標簽:
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="username != null">
AND username = #{username}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND 1=1
</otherwise>
</choose>
</where>
</select>
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="ids != null and ids.size() > 0">
AND id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</select>
通過使用這些動態SQL標簽,可以根據不同的條件動態生成SQL語句,實現更加靈活和方便的數據庫操作。