在MyBatis中进行条件查询时,可以使用<choose>
、<when>
和<otherwise>
标签来优化条件判断,类似于Java中的if-else if-else
结构。
下面是一个示例,假设有一个需求是根据不同的条件来查询用户信息:
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="gender != null">
AND gender = #{gender}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND 1=1
</otherwise>
</choose>
</where>
</select>
在上面的示例中,根据不同的条件判断来拼接不同的SQL查询条件。如果gender
不为null,则查询条件为AND gender = #{gender}
;如果age
不为null,则查询条件为AND age = #{age}
;否则查询条件为AND 1=1
,即不添加任何查询条件。
这样可以使SQL语句更加简洁和可读性更高,同时也能更好地维护和扩展条件查询逻辑。