1. 程式人生 > >Ibatis中的isNotNull、isEqual、isEmpty的區別

Ibatis中的isNotNull、isEqual、isEmpty的區別

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 &lt;= sysdate AND n.FINISH_DATE &gt;= 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 &lt;=1 ) where rownum_&gt;=0 </select>