1. 程式人生 > >Mybatis中foreach的三種用法

Mybatis中foreach的三種用法

foreach一共有List,array,Map三種類型的使用場景。

foreach的主要用在構建in條件中,它可以在SQL語句中進行迭代一個集合。

  •     item表示集合中每一個元素進行迭代時的別名,
  •     index指定一個名字,用於表示在迭代過程中,每次迭代到的位置,
  •     open表示該語句以什麼開始,
  •     separator表示在每次進行迭代之間以什麼符號作為分隔 符,
  •     close表示以什麼結束。

1.List型別插入:

<insert id="batchInsertClientDeviceList" parameterType="java.util.List" >
    INSERT INTO t_client_device_list (order_no,mac_id,client_code,status,order_time)
    <foreach collection="list" item="item" index="index" separator="union all">
         select #{item.orderNo, jdbcType=VARCHAR},#{item.macId, jdbcType=VARCHAR}
         from dual
    </foreach>
</insert>

1.1List型別查詢:

<select id="getClientDeviceList" parameterType="java.util.List" resultType="Device">
    select * from t_devices where id in
    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

2.引數array型別查詢:

<select id="getClientDeviceList" parameterType="java.util.ArrayList" resultType="Device">
     select * from t_devices where id in
     <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
          #{item}
     </foreach>
</select>   

3.引數Map型別查詢:

map中存放了一個元素key為ids,value為List<String>用於id in的條件

<select id="getClientDeviceList" parameterType="java.util.HashMap" resultType="Device">
    select * from t_devices where mac like "%"#{mac}"%" and id in
    <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

相關推薦

mybatis 批量操作資料的方法

方法1: 使用for迴圈在java程式碼中insert (不推薦) 方法2: 使用在Mapper.xml當中使用 foreach迴圈的方式進行insert PersonDao.java檔案 publi

mybatis foreach collection的用法

app key bsp arr onf array數組 自己 構建 符號 轉載:http://blog.sina.com.cn/s/blog_b0d90e8c0102v1q1.html 傳參參考:http://www.cnblogs.com/ruiati/p/6410339

Mybatisforeach用法

foreach一共有List,array,Map三種類型的使用場景。 foreach的主要用在構建in條件中,它可以在SQL語句中進行迭代一個集合。     item表示集合中每一個元素進行迭代時的別名,     index指定一個名字,用於表示在迭代過程中,每次迭代到

foreachcollection的用法

tor 不同 多個 list() new lis fin pre href 轉載:http://blog.sina.com.cn/s/blog_b0d90e8c0102v1q1.html 傳參參考:http://www.cnblogs.com/ruiati/p/641033

mybatis 傳入引數及其 foreach collection的用法

參考: foreach標籤主要用於構建in條件,它可以在sql中對集合進行迭代,通常可以將之用到批量刪除、新增等操作中,示例如下:   <delete id="deleteBatch">     delete from user where id

Linux Shell引號的用法

containe ubunt ref highlight 處理 alt 返回 cin test Linux Shell中有三種引號,分別為雙引號(" ")、單引號(‘ ‘)以及反引號(` `)。 其中雙引號對字符串中出現的$、‘‘、`和\進行替換;單引號不進行替換,將字符串

C#“?”有用法

c 1、可空類型修飾符(?):引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空,例如:string str=null;是正確的。int i=null;編譯器將報錯。為了使值類型也可為空,可空類型出現了,可空類型使用可空類型修飾符?來表示,表現形式為T?。例:int?表示是可空的整形,Date

JAVAthis的用法的詳解

enc 所有 其它 println 用途 詳細介紹 示例 一次 調用構造   this關鍵字必須放在非靜態方法裏面 this關鍵字代表自身,在程序中主要的使用用途有以下幾個方面:    使用this關鍵字引用成員變量    使用this關鍵字在自身構造方法內部引用其它構造方

mybatisforeach用法

在SQL語句中,foreach可以對陣列,Map或者實現了Iterable介面的物件進行遍歷, foreach包含以下屬性: collection:必填,值為要迴圈的屬性名,預設為list item:變數名,值為迭代物件中取出的每一個值。 index:索引的屬性名,在集合陣列情況下值

Python擴充套件庫numpywhere()函式的用法 Python擴充套件庫numpywhere()函式的用法

原 Python擴充套件庫numpy中where()函式的三種用法 2018年06月25日 07:43:56 Python_小屋 閱讀數:1000

mybatis foreach用法

在mybatis(mybatis-3.4.5)的官方文件中,給了僅僅這麼一個例子: <select id="selectPostIn" resultType="domain.blog.Post"> SELECT * FROM POST P WHERE ID in

golang select的用法

golang 中select的三種用法     1.超時處理 select {     case str := <- resultChan:       &n

.NET WinFormTimer(計時器)的區別和用法

.NET中的三種Timer(計時器)的區別和用法卡卡 發表於 2014/12/5 13:02:00 | 分類標籤: Timer 計時器 ASP.NET NET中有3個不同的定時器。這3個定時器分別是: 1.實現按使用者定義的時間間隔引發事件的計時器。此計時器最宜用於 Wi

c#using的用法

1.using指令。using + 名稱空間名字,這樣可以在程式中直接用命令空間中的型別,而不必指定型別的詳細名稱空間,類似於Java的import,這個功能也是最常用的,幾乎每個cs的程式都會用到。 例如:using System; 一般都會出現在*.cs中。 2.us

mybatisforeach用法

1.場景還原     工作中,有很多地方需要用到批量刪除或批量插入,或者是批量更新,抑或是批量查詢,這樣的需求難免會用到mybatis中的foreach標籤 2.foreach介紹 <foreach>標籤的用法: 6個引數: collection:要迴圈的集合

C#New關鍵字的用法

三種用法如下:   在 C# 中,new 關鍵字可用作運算子、修飾符或約束。   1)new 運算子:用於建立物件和呼叫建構函式。這種大家都比較熟悉,沒什麼好說的了。   2)new 修飾符:在用作修飾符時,new 關鍵字可以顯式隱藏從基類繼承的成員。   3)n

iOSwebView的用法

/***************************************ViewController.h***************************************/ #import @interface ViewController : U

SQL語句UPDATE的用法

SQL語句中的更新語句update是最常用的語句之一,下面將為您介紹update語句的三種使用方法,供您參考,希望對您有所幫助。 一、環境: MySQL-5.0.41-win32 Windows XP professional  二、建立測試環境:   DROP TAB

PLSQL參數模式IN、OUT、IN OUT

代碼 問題 ima .cn lang 傳遞 repl 一個 lin 1、IN模式 IN模式是參數的默認模式,這種模式就是在程序運行的時候已經具有值,在程序體中值不會改變。 錯誤例子: 1 create or replace procedure in_proc ( 2

js oop繼承方法

custom 屬性方法 三種 調用方法 定義 this指向 兩個類 fun color JS OOP 中的三種繼承方法: 很多讀者關於js opp的繼承比較模糊,本文總結了oop中的三種繼承方法,以助於讀者進行區分。 <繼承使用一個子類繼承另一個父類,子類可以自