在MyBatis中,可以使用if语句和choose语句来结合使用,以实现更灵活的条件判断和处理逻辑。以下是一个示例:
<select id="getUserList" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="status != null">
AND status = #{status}
</when>
<when test="name != null">
AND name = #{name}
</when>
<otherwise>
AND age >= #{minAge} AND age <= #{maxAge}
</otherwise>
</choose>
</where>
</select>
在上面的示例中,通过choose语句结合if语句,根据不同的条件判断来动态生成SQL语句。如果传入了status参数,则会根据status值进行筛选;如果传入了name参数,则会根据name值进行筛选;如果都没有传入,则会根据传入的minAge和maxAge参数进行筛选。
这样可以根据不同的条件灵活地生成SQL语句,从而实现更加灵活和可复用的查询逻辑。