溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

ibatis<iterate>標(biāo)簽怎么用

發(fā)布時(shí)間:2021-12-27 09:20:39 來(lái)源:億速云 閱讀:157 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下ibatis<iterate>標(biāo)簽怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在看ibatis文檔時(shí),就看見(jiàn)過(guò)這個(gè)標(biāo)簽,并且還對(duì)其不是很了解,一直沒(méi)有到現(xiàn)在,在工作中用到了標(biāo)簽時(shí),才去了解了一下這個(gè)標(biāo)簽的具體含義。先把文檔中對(duì)標(biāo)簽的介紹貼出來(lái)一起分享。

標(biāo)簽:這屬性遍歷整個(gè)集合,并為L(zhǎng)ist集合中的元素重復(fù)元素體的內(nèi)容。

標(biāo)簽的屬性:

prepend-可被覆蓋的SQL語(yǔ)句組成部分,添加在語(yǔ)句的前面(可選)

property-類(lèi)型為java.util.List的用于遍歷的元素(必選)

open-整個(gè)遍歷內(nèi)容體開(kāi)始的字符串,用于定義括號(hào)(可選)

close-整個(gè)遍歷內(nèi)容體結(jié)束的字符串,用于定義括號(hào)(可選)

conjunction-每次遍歷內(nèi)容之間的字符串,用于定義AND或OR(可選)

iterate-遍歷類(lèi)型為java.util.List(或數(shù)組)的元素。


例子:

<iterate prepend=”AND” property=”userNameList”
open=”(” close=”)” conjunction=”O(jiān)R”>
username=#userNameList[]#
</iterate>

注意:使用標(biāo)簽時(shí),在List元素名后面包括方括號(hào)[]非常重要,方括號(hào)[]將對(duì)象標(biāo)記為L(zhǎng)ist,以防解析器簡(jiǎn)單地將List輸出成String。


我本人對(duì)上面標(biāo)簽中內(nèi)容的理解如下:

在生成該條sql語(yǔ)句時(shí),標(biāo)簽中的內(nèi)容是循環(huán)生成的,就拿上面的例子來(lái)說(shuō),生成的sql是(username=xxx1 or username=xxx2 or username=xxx 3)而不是(username=xxx1 or xxx2 or xxx3) 再舉個(gè)例子,如下:

id in
<iterate  prepend="" property="ids"  open="("  close=")"  conjunction="," >
#ids[]#
</iterate> 。。。。。。。(1)

其生成的sql語(yǔ)句是:id in (xx1,xx2,xx3,.....),括號(hào)中的(包括括號(hào))是標(biāo)簽生成的。


標(biāo)簽雖然是遍歷整個(gè)集合的,但標(biāo)簽不象我們?cè)趈ava中用到的for一樣,一次一次的循環(huán)生成標(biāo)簽中的內(nèi)容,而是一次性利用list或數(shù)組生成整個(gè)可運(yùn)行的sql語(yǔ)句。就好比(1)它生成的sql不可能象這樣:id in (xx1)
id in (xx2)  ,id in (xx3),.....

以上是“ibatis<iterate>標(biāo)簽怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI