在MyBatis的XML映射文件中使用if-else可以通過使用<if>
和<choose>
標簽來實現條件判斷。以下是一個示例:
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM users
WHERE id = #{id}
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</select>
在上面的示例中,<if>
標簽用于判斷條件是否成立,如果條件成立則會執行其中的SQL語句。可以通過test
屬性來指定條件判斷的表達式。
另外,<choose>
標簽可以實現類似于Java中的if-else if-else結構。以下是一個示例:
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM users
WHERE id = #{id}
<choose>
<when test="name != null">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 'active'
</otherwise>
</choose>
</select>
在上面的示例中,<choose>
標簽內部包含了多個<when>
標簽和一個<otherwise>
標簽。每個<when>
標簽用于判斷一個條件是否成立,如果條件成立則執行其中的SQL語句。<otherwise>
標簽用于指定當所有條件都不成立時執行的SQL語句。