<choose>:choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。即在多个条件中选择一个条件查询,
<select id="selectUserByChoose" resultType="com.qcby.entity.User" parameterType="com.qcby.entity.User">
select * from user
<where>
<choose>
<when test="id != null and id !=''">
id = #{id}
</when>
<when test="username != null and username !=''">
username = #{username}
</when>
<otherwise>
sex = #{sex}
</otherwise>
</choose>
</where>
</select>
如果不加<choose>标签,直接<where>套<when>则是根据多个条件(如果存在多个非空的条件)进行查询
<select id="selectUserByChoose" resultType="com.qcby.entity.User" parameterType="com.qcby.entity.User">
select * from user
<where>
<when test="id != null and id !=''">
id = #{id}
</when>
<when test="username != null and username !=''">
username = #{username}
</when>
<otherwise>
sex = #{sex}
</otherwise>
</where>
</select>