<if test="certificateStatus != null and certificateStatus != '' ">
<choose>
<when test="certificateStatus == 2 ">
<![CDATA[and a.certificate_status = '4' and Date(NOW()) > Date(a.closing_date)]]>
</when>
<when test="certificateStatus == 4 ">
<![CDATA[and a.certificate_status = '4' and Date(a.closing_date) >= Date(NOW()) ]]>
</when>
<otherwise>
<![CDATA[and a.certificate_status = #{certificateStatus}]]>
</otherwise>
</choose>
</if>
在mybatis的xml配置文件中,certificateStatus传入的参数类型为int,
错误写法: certificateStatus == '2' ,发现一直不成立
<if test="certificateStatus != null and certificateStatus != '' ">
<choose>
<when test="certificateStatus == '2' ">
<![CDATA[and a.certificate_status = '4' and Date(NOW()) > Date(a.closing_date)]]>
</when>
<otherwise>
<![CDATA[and a.certificate_status = #{certificateStatus}]]>
</otherwise>
</choose>
</if>
然后看了博客: https://www.cnblogs.com/tianchao/p/11558789.html,这样说
改成 “=” 发现还是不行。