首先我们要明确choose和if的区别,先看代码
<if test="null != null and '' != id">
and id = #{id}
</if>
<choose>
<when test = "null != id and '' != id">
id = #{id}
</when>
<when test = "id == 1">
id = '1'
</when>
<otherwise>
id = '3'
</otherwise>
</choose>
这里if代码的意思是如果id不是null并且不是’ ‘就加上判断条件id = #{id},反之就没有条件
choose的意思就是,如果id不是null并且不是’ '就加上id = #{id}
后面的代码就不执行了,如果when里面所有的判断都是false那么就执行otherwise里面的条件.