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