欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

參數(shù)解釋 

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

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ù)為可選項
separator表示在每次進行迭代之間以什么符號作為分隔符。select * from tab where id in(1,2,3)相當于1,2,3之間的","
close表示該語句以什么結(jié)束,最常用的是右括弧’)’,注意:mybatis會將該字符拼接到整體的sql語句之后,該參數(shù)為可選項

查詢

	<!--第一種-->
	<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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring事件監(jiān)聽詳解

    Spring事件監(jiān)聽詳解

    這篇文章主要介紹了Spring事件監(jiān)聽詳解,文中有非常詳細的圖文解說及代碼示例,對正在學習java Spring的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java實用小技能之快速創(chuàng)建List常用幾種方式

    Java實用小技能之快速創(chuàng)建List常用幾種方式

    java集合可以說無論是面試、刷題還是工作中都是非常常用的,下面這篇文章主要給大家介紹了關(guān)于Java實用小技能之快速創(chuàng)建List常用的幾種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • SpringBoot+SpringSecurity實現(xiàn)認證的流程詳解

    SpringBoot+SpringSecurity實現(xiàn)認證的流程詳解

    這篇文章主要介紹了SpringBoot+SpringSecurity實現(xiàn)認證的流程,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Java中生產(chǎn)者消費者問題總結(jié)

    Java中生產(chǎn)者消費者問題總結(jié)

    這篇文章主要介紹了Java中生產(chǎn)者消費者問題總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 淺析Java中JSONObject和JSONArray使用

    淺析Java中JSONObject和JSONArray使用

    這篇文章主要介紹了Java中JSONObject和JSONArray使用的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 關(guān)于knife4j的使用及配置

    關(guān)于knife4j的使用及配置

    這篇文章主要介紹了關(guān)于knife4j的使用及配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JWT概述以及Token刷新機制詳解

    JWT概述以及Token刷新機制詳解

    這篇文章主要介紹了JWT概述以及Token刷新機制,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java并發(fā)編程創(chuàng)建并運行線程的方法對比

    Java并發(fā)編程創(chuàng)建并運行線程的方法對比

    這篇文章主要為大家詳細介紹了Java并發(fā)編程創(chuàng)建并運行線程的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Java中正則表達式匹配過程實例詳解

    Java中正則表達式匹配過程實例詳解

    正則匹配即是在給定字符串中查找符合正則表達式的字符,下面這篇文章主要給大家介紹了關(guān)于Java中正則表達式匹配過程的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Elasticsearch(ES)多種查詢方式案例

    Elasticsearch(ES)多種查詢方式案例

    Elasticsearch是一個分布式的RESTful搜索和分析引擎,可讓您輕松地大規(guī)模存儲,搜索和分析,這篇文章主要給大家介紹了關(guān)于Elasticsearch(ES)多種查詢方式的相關(guān)資料,需要的朋友可以參考下
    2023-09-09

最新評論