Ibatis中的isNotNull、isEqual、isEmpty的區別
阿新 • • 發佈:2019-02-19
isNull判斷property欄位是否是null
isEmpty判斷property欄位 是否是null 和 空字串
isEqual相當於equals,數字用得多些,一般都是判斷狀態值
例子1:(isEqual)
<isEqual property="state" compareValue="0">< /isEqual>
或
<isEqual property="state" compareProperty="nextState"></isEqual>
例子2:
傳入的map或者類的屬性name等於”1”嗎,是就附加and和vvvv
<isEqual property="name" compareValue="1" prepend="and">
vvvv = '哈哈'
< /isEqual>
傳入的map或者類的屬性name是null嗎,是就附加and和vvvv = null
< isNull property="name" prepend="and">
vvvv = null
< /isNull>
sqlmap
<select id="querySingleModelByOut" parameterClass="com.hanpeng.base.phone.model.TBussinessNotice"
resultClass="com.hanpeng.base.phone.model.TBussinessNotice">
select * from (select row_.*, rownum rownum_ from (
SELECT
i.NOTICE_NUM as noticeNum ,
i.BUSSINESS_ID as bussinessId ,
i.STATE as state ,
i.READ_DATE as readDate ,
n.NOTICE_TITLE as noticeTitle ,
n.NOTICE_INFO as noticeInfo ,
n.CREATE_DATE as createDate ,
n.EMPLOYEE_ID as employeeId ,
n.NOTICE_TYPE as noticeType ,
n.NOTICE_SHOW_TYPE as noticeShowType ,
n.FINISH_DATE as finishDate ,
n.PUBLISH_DATE as publishDate
FROM T_BUSSINESS_NOTICE i left join T_NOTICE n on n.NOTICE_NUM = i.NOTICE_NUM
WHERE
n.PUBLISH_DATE <= sysdate AND n.FINISH_DATE >= sysdate
<isNotEmpty prepend=" AND " property="bussinessId">
i.BUSSINESS_ID = #bussinessId# </isNotEmpty>
<isNotEmpty prepend=" AND " property="state">
i.STATE = #state# </isNotEmpty>
<isNotEmpty prepend=" AND " property="noticeShowType">
n.NOTICE_SHOW_TYPE = #noticeShowType# </isNotEmpty>
<isEqual property="saleBack" compareValue="10" prepend=" AND ">
n.NOTICE_TYPE!='25'</isEqual>
<isEqual property="remittanceBank" compareValue="10" prepend=" AND ">
n.NOTICE_TYPE!='63'</isEqual>
<isEqual property="remittanceOnline" compareValue="10" prepend=" AND ">
n.NOTICE_TYPE!='64'</isEqual>
)row_ where rownum <=1 ) where rownum_>=0
</select>