首先我們要明白的是foreach的本質就是把資料庫能執行的sql在xml中按照一定語法來進行拼接,所以拼接之前,我們瞭解一下foreach標籤中幾個常見元素的作用
1.collection
List或Array:如果傳入的引數型別是List或Array,collection屬性的預設值分別是list和array。如果需要自定義集合名稱。
Map:如果傳入的引數是Map,collection屬性可以指定遍歷Map的keys、values或entrySet
2.item
集合遍歷中每一個元素的別名
3.open
拼接sql時最前面拼接的字串
4.separator
拼接sql時候兩個元素之間的分隔字串
5.close
拼接sql時最後面拼接的字串
6.index
index:在List或Array中,index為元素的序號索引;在Map中,index為遍歷元素的key值。
舉一個簡單的例子
一個簡單的sql
select * from blog where title is not null and (id=1 or id=2 or id=3)
1.我們使用map集合作為引數實現拼接
<select id="queryBlogForeach" parameterType="map" resultType="blog"> select * from blog <where> title is not null <foreach collection="ids" item="id" open="and (" separator="or" close=")"> id=#{id} </foreach> </where> </select>
2.我們使用list集合作為引數實現拼接
<select id="queryBlogForeach2" parameterType="list" resultType="blog"> select * from blog <where> title is not null <foreach collection="list" item="id" open="and (" separator="or" close=")"> id=#{id} </foreach> </where> </select>
Mybatis中foreach的使用
相關文章
- mybatis關於list的foreach的使用MyBatis
- Mybatis的 foreach 標籤使用方法.MyBatis
- MyBatis學習——foreach標籤的使用MyBatis
- mybatis中foreach標籤詳解MyBatis
- php中foreach的使用PHP
- java中 foreach 的使用Java
- mybatis foreach迴圈MyBatis
- MyBatis foreach標籤MyBatis
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- MyBatis Batch Update Exception使用foreach批量update出錯MyBatisException
- MyBatis-動態SQL的if、choose、when、otherwise、trim、where、set、foreach使用MyBatisSQL
- MyBatis xml foreach迴圈語句MyBatisXML
- MyBatis 使用foreach與其他方式的時候引數傳遞方式MyBatis
- java中的forEachJava
- mybatis中使用foreach構造多like查詢及批量插入MyBatis
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- mybatis foreach標籤的解釋 與常用之處MyBatis
- mybatis foreach之前對list進行判空MyBatis
- Mybatis foreach 請求引數是物件集合MyBatis物件
- mybatis list作為引數 foreach迴圈MyBatis
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL
- JavaScript中foreachJavaScript
- MyBatis從入門到精通(八):MyBatis動態Sql之foreach標籤的用法MyBatisSQL
- Mybatis動態Sql的Foreach遍歷拼接輸入引數中的List或陣列MyBatisSQL陣列
- C#中foreach基礎使用方法C#
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- PHP 中的 foreach 工作原理PHP
- Mybatis在Spring中的使用(三)MyBatisSpring
- foreach使用引用時的一個坑-foreach原始碼分析原始碼
- JAVA中的foreach怎麼用Java
- Java 8 forEach使用Java
- MyBatis引數傳入集合之foreach動態sqlMyBatisSQL
- Mybatis系列:解決foreach標籤內list為空的問題MyBatis
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列
- JavaScript中Map和ForEach的區別JavaScript
- powershell中的where和foreach比較
- mybatis中@Mapper使用介紹MyBatisAPP
- 原始碼分析 Mybatis 的 foreach 為什麼會出現效能問題原始碼MyBatis
- mybatis的配置檔案中使用兩個或多個foreach進行多個集合遍歷的問題MyBatis