iBatis動態標籤詳解

1、<iterate>: 該標籤用於遍歷一個list。它有以下屬性:

 prepend:sql語句組成部分,可以被覆蓋,可爲and、or等,該選項是可選的

 open:整個遍歷內容開始前設置的字符串,常常設爲‘(’。該選項是可選的

 close:整個遍歷內容結束時設置的字符串,常常爲‘)’。該選項是可選的

  conjunction:遍歷內容中間間隔的字符串,可爲‘,’、‘and’、‘or’等。該選項是可選的

 property:遍歷的list,類型爲java.util.list,該選型明顯是必須的。

 例子:

<select id="queryData" parameterClass="java.util.List" resultClass="java.lang.String">
select password from userinfo where user_name in
<iterate open="(" close=")" conjunction=",">
#[]#
</iterate>
    </select> 

2、<dynamic>:

dynamic主要用於動態拼接sql語句,dynamic元素可以包含多個條件比較元素,並且按照條件比較元素的表述對參數值進行比較,來組裝動態SQL。 這裏主要的條件比較元素包含isGreaterThan、isNotNull、isEmpty…… 

dynamic中的prepend可以覆蓋第一個爲真子元素的prepend值。例如:

select * from usrinfo
        <dynamic prepend="where"> 
                <isNotNull property="name" prepend="and">
                    name=#name#
                </isNotNull>
                <isNotNull property="sex" prepend="and">
                    sex=#sex#
                </isNotNull>               
        </dynamic>

 若“name” isNotNull 爲true,則sql語句爲:select * from usrinfo where name=?and sex=?

select * from usrinfo where sex = 'femail' 

<dynamic>

<isNotNull property="usrName">

and usrName = #name#

</isNotNull>

<isGreaterThan property="id" compareValue="0">

and id = #id#

</isGreaterThan>

</dynamic>


3、一元條件元素屬性:

prepend(可選)、property(必選)

<isNotNull property="usrName">

<isNull property="usrName">

<isEmpty property="usrName">

<isNotEmpty property="usrName">

4、二元條件查詢屬性:

prepend(可選)、property(必選)、compareProperty、compareValue、後兩個元素至少選一個

<isGreatorThan property="id" compareValue="0">

<isLessThanproperty="id" compareValue="0">

<isGreatorEqualproperty="id" compareValue="0">

<isLessEqual property="id" compareValue="20">

<isEqual propertu="id" compareValue="20">

<isNotEqual property="id" compareValue="20">




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章