在MyBatis中,可以使用<if>
和<choose>
標簽來實現if-else條件語句的功能。
示例如下:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
WHERE 1=1
<if test="username != null and username != ''">
AND username = #{username}
</if>
<if test="age != null and age > 0">
AND age = #{age}
</if>
</select>
在上面的例子中,<if>
標簽用于判斷是否滿足條件,如果滿足條件則執行其中的SQL語句。如果需要實現多個條件的判斷,可以使用<choose>
標簽。
示例如下:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
WHERE 1=1
<choose>
<when test="role == 'admin'">
AND role = 'admin'
</when>
<when test="role == 'user'">
AND role = 'user'
</when>
<otherwise>
AND role = 'guest'
</otherwise>
</choose>
</select>
在上面的例子中,<choose>
標簽相當于if-else語句,<when>
標簽用于判斷條件是否成立,<otherwise>
標簽則相當于else語句。通過這種方式可以實現if-else條件語句的功能。