在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条件语句的功能。