<resultMap id="ConditionOneResult" class="SearchConditionOneList">
<result property="id" column="ID"/>
<result property="name" column="NAME"/>
<result property="value" column="VALUE"/>
<result property="showType" column="SHOW_TYPE"/>
<result property="type" column="TYPE"/>
<result property="order" column="SN" nullValue="000"/>
</resultMap>
用来映射查询语句的
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="name">
(name like #name#)
</isNotEmpty>
<isNotEmpty prepend="AND" property="address">
(address like #address#)
</isNotEmpty>
</dynamic>
其中WHERE 之后的语句是在dynamic节点中所定义,因此以dynamic节点的prepend设置("WHERE")作为前缀,而其中的
“AND”,实际上是address属性所对应的isNotEmpty节点的prepend设定,它引领了对应节点中定义的SQL子句。至于name
属性对应的isNotEmpty节点,由于ibatis会自动判断是否需要追加prepend前缀,这里(name like #name#)是Where子句中
的第一个条件子句,无需AND前缀,所以自动省略。
一元
<isPorpertyAvailable>参数类中是否提供了此属性
<isNotPropertyAvailable>与<isPropertyAvailable>相反
<isNull>属性值是否为NULL
<isNotNull>与<isNull>相反
<isEmpty>如果属性为Collection或者String,其size是否小于1,如果非以上两种类型,则通过String.valueOf(属性值)获得其
String类型的值后,判断其size是否小于1.
<isNotEmpty>与<isEmpty>相反