一元条件元素 IBatisNet
一元条件元素
一元条件元素检查属性的状态是否符合特定的条件。即检查属性值是否满足条件,如果满足则查询条件有效。
一元条件元素的属性和二元条件元素一样,具有prepend和property属性,其中property为必选属性。
一元条件元素为:
<isPropertyAvailable> |
检查是否存在该属性。 |
<isNotPropertyAvailable> |
检查是否不存在该属性。 |
<isNull> |
检查属性是否为null。 |
<isNotNull> |
检查属性是否不为null。 |
<isEmpty> |
检查属性是否为空,属性的数据类型为Collection、String 时检查是否为null或空,即是否为""或size() < 1。如: <isNotEmpty prepend="AND" property="firstName" > FIRST_NAME=#firstName# </isNotEmpty> |
<isNotEmpty> |
检查属性是否不为空,检查方式同上。 |
比如下面的配置例子:
<selectid="SelectSysuserDynamic3"resultMap="SysuserResult"parameterClass="System.Collections.IDictionary">
<![CDATA[ SELECT * FROM DEAN.SYSUSER ]]>
<dynamicprepend="WHERE">
<isPropertyAvailableproperty="SEX">
<isNotNullproperty="SEX"prepend="AND">
SEX=#SEX#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailableproperty="STATUS">
<isNotNullproperty="STATUS"prepend="AND">
STATUS=#STATUS#
</isNotNull>
</isPropertyAvailable>
</dynamic>
</select>
先判断传入参数集是否有SEX参数,如果没有则不执行SEX=#SEX#查询条件,再判断该参数是否为null,不为null才执行查询条件。isPropertyAvailable元素最大的好处是,如果输入的参数集不包括设置的参数时程序不会报错,直接跳过该元素设置内容。