mybatis關於list的foreach的使用
當傳入引數為list的時候foreach的使用
當引數為一個list的時候
方法層:
int deleteAll(List<String> list);
xml檔案中的sql語句
<delete id="deleteAll" parameterType="list">
delete from classify
where id in
<foreach collection="list" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
</delete>
當引數為多個list方法層
控制層:
執行層
xml檔案:
基本完成
下面是一些常識:
foreach元素的屬性主要有 item,index,collection,open,separator,close。
item表示集合中每一個元素進行迭代時的別名,
index指 定一個名字,用於表示在迭代過程中,每次迭代到的位置,
open表示該語句以什麼開始,
separator表示在每次進行迭代之間以什麼符號作為分隔 符,
close表示以什麼結束
collection主要有一下3種情況:
1. 如果傳入的是單引數且引數型別是一個List的時候,collection屬性值為list
2. 如果傳入的是單引數且引數型別是一個array陣列的時候,collection的屬性值為array
3. 如果傳入的引數是多個的時候,我們就需要把它們封裝成一個Map了,當然單引數也可
1.單引數List的型別:
<select id="dynamicForeachTest" parameterType="java.util.List" resultType="Blog">
2 select * from t_blog where id in
3 <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
6 </select>
上述collection的值為list,對應的Mapper是這樣的
public List dynamicForeachTest(List ids);
測試程式碼:
2.單引數array陣列的型別
1 <select id="dynamicForeach2Test" parameterType="java.util.ArrayList" resultType="Blog">
2 select * from t_blog where id in
3 <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
6 </select>
上述collection為array,對應的Mapper程式碼:
public List dynamicForeach2Test(int[] ids);
對應的測試程式碼
3.自己把引數封裝成Map的型別
1 <select id="dynamicForeach3Test" parameterType="java.util.HashMap" resultType="Blog">
2 select * from t_blog where title like "%"#{title}"%" and id in
3 <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
6 </select>
上述collection的值為ids,是傳入的引數Map的key,對應的Mapper程式碼:
public List dynamicForeach3Test(Map params);
對應測試程式碼
相關文章
- Mybatis中foreach的使用MyBatis
- Mybatis的 foreach 標籤使用方法.MyBatis
- 關於在forEach中使用await的問題AI
- Mybatis系列:解決foreach標籤內list為空的問題MyBatis
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- 關於forEach同步非同步的問題非同步
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL
- mybatis foreach迴圈MyBatis
- SpringBoot中關於Mybatis使用的三個問題Spring BootMyBatis
- Idea - 關於mybatis的外掛IdeaMyBatis
- 關於各種List型別特點以及使用的場景型別
- 關於Argument list too long的問題
- 關於寫文章發文章的Reading List
- Mybatis相關:基於註解的Mybatis開發MyBatis
- 關於mybatis,需要掌握的基礎MyBatis
- php中foreach的使用PHP
- 關於 mybatis-plus 與JPA 混合使用MyBatis
- for (auto it = _list.begin(); it != _list.end(); )關於在for迴圈中使用std::vector中的begin和end
- mybatis foreach標籤的解釋 與常用之處MyBatis
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- 關於Mybatis中SQL語句的整理MyBatisSQL
- MyBatis xml foreach迴圈語句MyBatisXML
- foreach使用引用時的一個坑-foreach原始碼分析原始碼
- MyBatis在SQL語句中取list的大小MyBatisSQL
- Java foreach 中List移除元素丟擲ConcurrentMJava
- MyBatis從入門到精通(八):MyBatis動態Sql之foreach標籤的用法MyBatisSQL
- 關於Jpa和Mybatis的一些看法MyBatis
- 關於SpringBoot結合mybatis後遇到的坑Spring BootMyBatis
- Mybatis【2.2】-- Mybatis關於建立SqlSession原始碼分析的幾點疑問?MyBatisSQLSession原始碼
- MyBatis中傳入引數為List集合的MyBatis
- 關於Remix的使用REM
- Mybatis中List傳值MyBatis
- Mybatis foreach 請求引數是物件集合MyBatis物件
- 關於 Mybatis mapping.xml中的 StatementType 知識點MyBatisAPPXML
- mybatis的配置檔案中使用兩個或多個foreach進行多個集合遍歷的問題MyBatis
- Android關於Typedarray的使用Android
- 關於Validation的方法使用
- java 關於fileinputstream的使用Java