zoukankan      html  css  js  c++  java
  • ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别(转)

      

    <span style="font-family: Arial, Verdana, sans-serif; white-space: normal; "><strong>isNull, isNotNull与isEmpty, isNotEmpty区别</strong></span>

    在iBATIS中

    isNull用于判断参数是否为Null,isNotNull相反

    isEmpty判断参数是否为Null或者空,满足其中一个条件则其true

    isNotEmpty相反,当参数既不为Null也不为空是其为true

     判断之后做相对应的表达式操作

     

         <select id="getCustomerRegNum" resultClass="int" parameterClass="QueryCustomerCondition">
                select count(cus_id) from cus_customer_tbl 
                <dynamic prepend="WHERE">
                    <isNotEmpty prepend="AND" property="cusWebFrom">
                        ( CUS_CUSTOMER_TBL.CUS_WEB_FROM LIKE '%$cusWebFrom$%')
                    </isNotEmpty>
                    <isNotEmpty prepend="AND" property="cusWebAgent">
                        ( CUS_CUSTOMER_TBL.CUS_WEB_AGENT LIKE '%$cusWebAgent$%')
                    </isNotEmpty>
                </dynamic>
         </select>

    当之传入参数 cusWebForm 而不传入 cusWebAgent 时,产生的SQL语句为:

    select count(cus_id) from cus_customer_tbl    WHERE      ( CUS_CUSTOMER_TBL.CUS_WEB_FROM LIKE '%baidu%') 

    而当XML代码用<isNotNull > 配置时(注意他们的区别),

         <select id="getCustomerRegNum" resultClass="int" parameterClass="QueryCustomerCondition">
                select count(cus_id) from cus_customer_tbl 
                <dynamic prepend="WHERE">
                    <isNotNull prepend="AND" property="cusWebFrom">
                        ( CUS_CUSTOMER_TBL.CUS_WEB_FROM LIKE '%$cusWebFrom$%')
                    </isNotNull>
                    <isNotNull prepend="AND" property="cusWebAgent">
                        ( CUS_CUSTOMER_TBL.CUS_WEB_AGENT LIKE '%$cusWebAgent$%')
                    </isNotNull>
                </dynamic>
         </select>

    同样 ,当之传入参数 cusWebForm 而不传入 cusWebAgent 时,产生的SQL语句为: 

    select count(cus_id) from cus_customer_tbl     WHERE     ( CUS_CUSTOMER_TBL.CUS_WEB_FROM LIKE '%baidu%')      AND        (CUS_CUSTOMER_TBL.CUS_WEB_AGENT LIKE '%%')

     从Sql 语句就能看出他们的区别。。。。。

  • 相关阅读:
    PAT B1045 快速排序 (25 分)
    PAT B1042 字符统计 (20 分)
    PAT B1040 有几个PAT (25 分)
    PAT B1035 插入与归并 (25 分)
    PAT B1034 有理数四则运算 (20 分)
    PAT B1033 旧键盘打字 (20 分)
    HDU 1231 最大连续子序列
    HDU 1166 敌兵布阵
    HDU 1715 大菲波数
    HDU 1016 Prime Ring Problem
  • 原文地址:https://www.cnblogs.com/forgeting/p/4402464.html
Copyright © 2011-2022 走看看