ibatisの中でisNull、isNotNullとisEmpty、isNotEmptyは区別します。


isNull, isNotNull isEmpty, isNotEmpty  
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>
パラメータが入ってきた時には、cus WebFormは入ってこないです。 cus WebAgentの場合、SQL文は以下の通りです。
select count from cus_customer_tbl   WHERE     (CUSUCUSTOMER TBL.C.USWEBOM 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>
同じように、パラメータのcus WebFormが入ってきた時には入ってきません。 cus WebAgentの場合、SQL文は以下の通りです。
select count from cus_customer_tbl    WHERE    (CUSUCUSTOMER TBL.C.USWEBOM LIKE'%baidu')     AND       (CUSCUSTOMERUTBL.
Sql文から彼らの違いが分かります。。。。。