首先我們要明白的是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
- php中foreach的使用PHP
- mybatis foreach迴圈MyBatis
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- MyBatis xml foreach迴圈語句MyBatisXML
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- mybatis foreach標籤的解釋 與常用之處MyBatis
- Mybatis foreach 請求引數是物件集合MyBatis物件
- MyBatis從入門到精通(八):MyBatis動態Sql之foreach標籤的用法MyBatisSQL
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- foreach使用引用時的一個坑-foreach原始碼分析原始碼
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL
- JavaScript中foreachJavaScript
- 在lambda的foreach遍歷中break退出(lambda foreach break)
- PHP 中的 foreach 工作原理PHP
- Mybatis在Spring中的使用(三)MyBatisSpring
- JAVA中的foreach怎麼用Java
- Mybatis系列:解決foreach標籤內list為空的問題MyBatis
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列
- 原始碼分析 Mybatis 的 foreach 為什麼會出現效能問題原始碼MyBatis
- powershell中的where和foreach比較
- mybatis的配置檔案中使用兩個或多個foreach進行多個集合遍歷的問題MyBatis
- mybatis中@Mapper使用介紹MyBatisAPP
- Mybatis實現條件IN查詢(foreach)和invalid comparison異常MyBatis
- mybatis 根據多個id查詢資料 foreach標籤MyBatis
- foreach 實現 MyBatis 遍歷集合與批量運算元據MyBatis
- 你瞭解jsp中的c:forEach嗎?JS
- 使用 foreach 使用引用變數需要注意的問題變數
- MyBatis mapping.xml中的flushCache和useCache的使用MyBatisAPPXML
- Mybatis TypeHandler 的使用MyBatis
- mybatis的基本使用MyBatis
- 關於在forEach中使用await的問題AI
- 在Java8的foreach()中不能break,如果需要continue時,可以使用returnJava
- JavaScript 中 forEach、map、filter 詳細JavaScriptFilter
- systemverilog中for/foreach並行執行並行
- PHP中foreach讀取順序PHP
- SpringBoot 中的 MyBatisSpring BootMyBatis