mybaits 中没有else要用chose when otherwise 代替
详情可以参考此文章:mybatis if-else(写法)
我在项目中的写法如下:
<select id="searchCorpList" parameterType="java.lang.String"
resultType="com.pccwhkt.ump.portal.umportal.sys.user.bean.SearchCorpResultBean">
select CORP_ACC_ID, CORP_ID, CORP_ACC_NAME CORP_NAME, STATUS, TYPE
from UMG_CORP_ACC
<if test="corp_id != null and corp_id != ''">
where LOCATE(#{corp_id}, CORP_ID)>0
</if>
<if test="corp_name != null and corp_name != ''">
<choose>
<when test="corp_id != null and corp_id != ''">
and LOCATE(#{corp_name}, CORP_ACC_NAME)>0
</when>
<otherwise>
where LOCATE(#{corp_name}, CORP_ACC_NAME)>0
</otherwise>
</choose>
</if>
<if test="status != null and status != ''">
<choose>
<when test="(corp_id != null and corp_id != '') or (corp_name != null and corp_name != '')">
and LOCATE(#{status}, STATUS)>0
</when>
<otherwise>
where LOCATE(#{status}, STATUS)>0
</otherwise>
</choose>
</if>
<if test="type != null and type != ''">
<choose>
<when test="(corp_id != null and corp_id != '') or (corp_name != null and corp_name != '') or (status != null and status != '')">
and LOCATE(#{type}, TYPE)>0
</when>
<otherwise>
where LOCATE(#{type}, TYPE)>0
</otherwise>
</choose>
</if>
</select>