Ibatis中的isNotNull、isEqual、isEmpty的区别

本文介绍了在SQLMap中如何使用isNull、isEmpty及isEqual等条件判断语句来灵活控制SQL查询的条件。通过具体示例展示了如何根据参数值动态生成SQL语句,包括对状态值的比较、对空值的检查等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

isNull判断property字段是否是null
isEmpty判断property字段 是否是null 和 空字符串
isEqual相当于equals,数字用得多些,一般都是判断状态值


转载自:http://jun1986.iteye.com/blog/1402191

例子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>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值