最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis之foreach標(biāo)簽的用法及多種循環(huán)問題

 更新時間:2023年11月04日 10:39:58   作者:TM_enn  
這篇文章主要介紹了MyBatis之foreach標(biāo)簽的用法及多種循環(huán)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

參數(shù)解釋 

foreach 的主要作用在構(gòu)建 in 條件中,它可以在 sql 語句中進(jìn)行迭代一個集合。

foreach 元素的屬性主要有 collection,item,separator,index,open,close。

屬性描述
collection指定要遍歷的集合。表示傳入過來的參數(shù)的數(shù)據(jù)類型。該屬性是必須指定的,要做 foreach 的對象。
index索引,index 指定一個名字,用于表示在迭代過程中,每次迭代到的位置。遍歷 list 的時候 index 就是索引,遍歷 map 的時候 index 表示的就是 map 的 key,item 就是 map 的值。
item表示本次迭代獲取的元素,若collection為List、Set或者數(shù)組,則表示其中的元素;若collection為map,則代表key-value的value,該參數(shù)為必選
open表示該語句以什么開始,最常用的是左括弧’(’,注意:mybatis會將該字符拼接到整體的sql語句之前,并且只拼接一次,該參數(shù)為可選項(xiàng)
separator表示在每次進(jìn)行迭代之間以什么符號作為分隔符。select * from tab where id in(1,2,3)相當(dāng)于1,2,3之間的","
close表示該語句以什么結(jié)束,最常用的是右括弧’)’,注意:mybatis會將該字符拼接到整體的sql語句之后,該參數(shù)為可選項(xiàng)

查詢

	<!--第一種-->
	<select id="getList" resultType="com.epeit.api.model.Device"> 
	  	SELECT *
	  	FROM devcie 
	 	WHERE 1=1 
	 	 <if test="ids != null and ids.size > 0"> 
	   		AND id IN
	   		<foreach collection="ids" item="item" open="(" separator="," close=")"> 
	   		 #{item} 
	  		 </foreach> 
	  	 </if> 
	 </select>
 
	<!--第二種-->
	<select id="getList" resultType="com.epeit.api.model.Device"> 
	  	SELECT *
	  	FROM devcie 
	  	WHERE 1=1 
	  	<if test="ids != null and ids.size > 0"> 
	   		AND
	   		<foreach collection="ids" item="item" open="id IN(" separator="," close=")"> 
	    		#{item} 
	   		</foreach> 
	  	</if> 
	 </select>
	 
	 <!--如果入?yún)⑹且粋€逗號分隔的字符串比如"1,2,3,4",還可以簡化寫法,不用轉(zhuǎn)成List,直接以字符串的形式傳入即可-->
	<select id="getList" resultType="com.epeit.api.model.Device">
		SELECT *
	  	FROM devcie 
	 	WHERE 1=1 
	 	 <if test="strIds != null and strIds != ''"> 
	   		AND id IN
	   		<foreach collection="strIds.split(',')" item="item" open="(" separator="," close=")"> 
	   		 #{item} 
	  		 </foreach> 
	  	 </if>
	</select>

批量更新

	<!--第一種-->
	<update id="updateList">
		<foreach collection="deviceList" item="item"  separator=";">
		    UPDATE device 
		    SET 
		       name = #{item.name},
		       no = #{item.no}
		    WHERE  
		       id = #{item.id}  
		</foreach>
	</update>

	<!--第二種-->
	<update id="updateList">
		UPDATE device 
		SET 
		   del_flag = 1
		WHERE 1=1
		AND id IN
	    <foreach collection="ids" item="item" open="("  separator="," close=")">
	         #{item}
	    </foreach>
	</update>

批量插入

	<!--第一種-->
    <insert id="insertList">
        INSERT INTO
       	device
        	(id,name,no)
        VALUES
        <foreach collection="deviceList" item="item" separator=",">
            ( #{item.id}, #{item.name}, #{item.no} )
        </foreach>
    </insert>

	<!--第二種-->
    <insert id="insertList">
    	<foreach collection="deviceList" item="item" separator=";">
        INSERT INTO
       	device
        	(id,name,no)
        VALUES
            ( #{item.id}, #{item.name},#{item.no} )
        </foreach>
    </insert>

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多線程之Callable接口的實(shí)現(xiàn)

    Java多線程之Callable接口的實(shí)現(xiàn)

    這篇文章主要介紹了Java多線程之Callable接口的實(shí)現(xiàn),Callable和Runnbale一樣代表著任務(wù),區(qū)別在于Callable有返回值并且可以拋出異常。感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java源碼解析阻塞隊(duì)列ArrayBlockingQueue功能簡介

    Java源碼解析阻塞隊(duì)列ArrayBlockingQueue功能簡介

    今天小編就為大家分享一篇關(guān)于Java源碼解析阻塞隊(duì)列ArrayBlockingQueue功能簡介,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)

    Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)

    文件提示功能在開發(fā)過程中很實(shí)用的,本文實(shí)現(xiàn)了一個Eclipse添加xml文件提示,感興趣的朋友可以了解下啊,希望本文對你有所幫助
    2013-01-01
  • SpringBoot中MockMVC單元測試的實(shí)現(xiàn)

    SpringBoot中MockMVC單元測試的實(shí)現(xiàn)

    Mock是一種用于模擬和替換類的對象的方法,以便在單元測試中獨(dú)立于外部資源進(jìn)行測試,本文主要介紹了SpringBoot中MockMVC單元測試的實(shí)現(xiàn),具有應(yīng)該的參考價值,感興趣的可以了解一下
    2024-02-02
  • Gradle快速安裝及入門

    Gradle快速安裝及入門

    今天小編就為大家分享一篇關(guān)于Gradle快速安裝及入門,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 用JAVA 設(shè)計(jì)生成二維碼詳細(xì)教程

    用JAVA 設(shè)計(jì)生成二維碼詳細(xì)教程

    本文主要介紹用JAVA 設(shè)計(jì)生成二維碼,這里一步一步詳細(xì)介紹用 java 如何設(shè)計(jì)二維碼,并附有代碼示例以便參考,有需要的小伙伴可以參考下
    2016-08-08
  • 淺談Strut2如何對請求參數(shù)的封裝

    淺談Strut2如何對請求參數(shù)的封裝

    這篇文章主要介紹了淺談Strut2如何對請求參數(shù)的封裝,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • Java實(shí)現(xiàn)時間動態(tài)顯示方法匯總

    Java實(shí)現(xiàn)時間動態(tài)顯示方法匯總

    這篇文章主要介紹了Java實(shí)現(xiàn)時間動態(tài)顯示方法匯總,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • 一文詳解Elasticsearch和MySQL之間的數(shù)據(jù)同步問題

    一文詳解Elasticsearch和MySQL之間的數(shù)據(jù)同步問題

    Elasticsearch中的數(shù)據(jù)是來自于Mysql數(shù)據(jù)庫的,因此當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改后,Elasticsearch中的數(shù)據(jù),索引也必須跟著做出改變。本文主要來和大家探討一下Elasticsearch和MySQL之間的數(shù)據(jù)同步問題,感興趣的可以了解一下
    2023-04-04
  • SpringBoot簡單實(shí)現(xiàn)文件上傳

    SpringBoot簡單實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了SpringBoot簡單實(shí)現(xiàn)文件上傳,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09

最新評論

洞口县| 勐海县| 平南县| 仙游县| 夏津县| 大方县| 大洼县| 吐鲁番市| 通河县| 甘肃省| 莱州市| 隆昌县| 朝阳区| 华蓥市| 宜君县| 长泰县| 汤阴县| 陆丰市| 吉安市| 定南县| 长兴县| 南京市| 禄劝| 无极县| 望江县| 巴彦县| 阳原县| 两当县| 万荣县| 阳西县| 阜宁县| 新建县| 西藏| 天峨县| 澄江县| 城固县| 雅安市| 祁门县| 蓬安县| 霸州市| 康马县|