mybatis foreach中集合的使用
方式一:把list或者陣列包裝到map中,傳遞到mapper檔案中的引數是map
1、把陣列包裝到map中:
java程式碼:
Long[] id = {1,2};
Map queryMap = new HashMap();
queryMap.put("id", id);
getSqlSession().update(queryMap, "deleteConbineCode");
xml
<update id="deleteConbineCode" parameterType="map"> DELETE from combine_code_normal where id in <foreach item="item" index="index" collection="id" open="(" separator="," close=")"> #{item} </foreach> </update>
注:parameterType中接受的是map型別,foreach中collection中是map中放的key。
2、把list<物件>包裝到map中
java程式碼
<pre code_snippet_id="612746" snippet_file_name="blog_20150305_1_7164380" name="code" class="java" style="font-size: 14px;">Map tMap = new HashMap();tMap.put("id",1);tMap.put("id",2);
List<Map> list = new ArrayList<Map>();<pre code_snippet_id="612746" snippet_file_name="blog_20150305_1_7164380" name="code" class="java" style="font-size: 14px;"><pre name="code" class="javascript" style="font-size: 14px;">list.add(tMap);<pre name="code" class="javascript" style="font-size: 14px;">//上面構造了一個集合,集合裡面是Map物件
Map queryMap = new HashMap();
queryMap.put("id",<span style="font-family: Arial, Helvetica, sans-serif;">list</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>
getSqlSession().update(queryMap, "deleteConbineCode");
xml
3、把list<基本型別>包裝到map中<update id="deleteConbineCode" parameterType="map"> DELETE from combine_code_normal where id in <foreach item="item" index="index" collection="id" open="(" separator="," close=")"> #{item.id} </foreach> </update>
java程式碼
//上面構造了一個集合,集合裡面是基本型別
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
Map queryMap = new HashMap();
queryMap.put("id",list);
getSqlSession().update(queryMap, "deleteConbineCode");
xml
<update id="deleteConbineCode" parameterType="map">
DELETE from combine_code_normal
where id in
<foreach item="item" index="index" collection="id" open="(" separator="," close=")">
#{item}
</foreach>
</update>
方式二:直接使用陣列或者list作為引數傳遞到mapper檔案
1、list方式:
java程式碼:
//構造了一個集合,集合裡面是基本型別
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
List<Map> = getSqlSession().selectList(sqlName,list);
xml:
<select id="selectTotalImpression1" resultType="java.util.Map">
SELECT * FROM iams_adplacement_impression
WHERE TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(time)) >= 1
AND adplacement_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
2、陣列java程式碼:
//構造了一個數組,數組裡面是基本型別
Integer[] ids = {1,2};
List<Map> = getSqlSession().selectList(sqlName,ids);
xml程式碼:
<select id="selectTotalImpression1" resultType="java.util.Map">
SELECT * FROM iams_adplacement_impression
WHERE TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(time)) >= 1
AND adplacement_id in
<foreach collection="array" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
注意:對於陣列、list作為引數傳給mapper時,parameterType可以不用寫,直接在foreach中按下面要求指定即可
如果傳入的是單引數且引數型別是一個List的時候,collection屬性值為list .
如果傳入的是單引數且引數型別是一個array陣列的時候,collection的屬性值為array
相關推薦
mybatis foreach中集合的使用
方式一:把list或者陣列包裝到map中,傳遞到mapper檔案中的引數是map 1、把陣列包裝到map中: java程式碼: Long[] id = {1,2}; Map queryMap = n
C#中foreach出現“集合已修改 可能無法執行列舉操作”的解決方法
不要在列舉集合的操作(例如foreach)中去執行修改集合的操作。很多文章中提出解決方法是將foreach改為for迴圈,這裡記錄一種簡便方法。如果需要修改集合,那麼你應該先使用 ToArray() 方法,例如?1234foreach (var x in Mylist.ToA
Mybatis foreach遍歷集合的key和value
以動態order by為例,即通過if和foreach標籤動態拼接order by的排序欄位 Mapper.xml <select id="dynamicOrder" resultType="com.p7.demo.model.Person"> select * f
Mybatis foreach 請求引數是物件集合
需求 引數是物件集合/** * 查詢對應客戶的聯絡人資訊 * @param qeury * @return */ public List<CustomerContactInfoList> getCustomerContactInfoList(List<
Mybatis框架中mapper配置和foreach標籤的使用
foreach標籤下面介紹一下一個mapper配置檔案中的foreach標籤(注意,要跟著前面的總結來看,這裡使用的例子是結合前面的工程寫的,大部分程式碼沒有再贅述)foreach的作用是向sql傳遞陣列或List,mybatis使用foreach解析1.1需求在使用者查詢列
C#實現在foreach中刪除集合中的元素
1 2 3 4 5 6 7 8 List<string> str = new List<string>(); str.Add( "zs"); str.Add("ls");
foreach 實現 MyBatis 遍歷集合與批量操作資料
一、寫在前面 MyBatis 動態 SQL 的一個常用的操作需求是對一個集合進行遍歷,通常是在構建 IN 條件語句的時候。foreach允許你指定一個集合,宣告可以在元素體內使用的集合項(item)和索引(index)變數。foreach 是動態 SQL 中
Mybatis Collection查詢集合只出現一條數據
img int ron src per rda entity 級聯 如果 1、原因 如果兩表聯查,主表和明細表的主鍵都是id的話,明細表的多條只能查詢出來第一條。 2、解決辦法 級聯查詢的時候,主表和從表有一樣的字段名的時候,在mysql上命令查詢是沒問
C#中集合ArrayList與Hashtable的使用
mov eat 重新 hashtable table bject remove 第一個 循環 C#中集合ArrayList與Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayL
Mybatis框架中Mapper文件傳值參數獲取。【Mybatis】
ram keyword ddr gem cli view ati copyto one Mybatis框架中,Mapper文件參數獲取一般有以下幾種: 1、參數個數為1個(string或者int) dao層方法為以下兩種: [java] view plain
Java中集合類容器初步了解
equals treemap 輸入 strong 字符串數組 通過 system 結構 shm 容器(Collection) 數組是一種容器,集合也是一種容器 java編程中, 裝其他各種各樣的對象(引用類型)的一種東西, 叫容器 (圖書
PHP在foreach中對$value賦值無效,應該用 ‘鍵’ 或者 &$value的形式
image blank key warn 運行 clas 應該 發現 建議 首先我們看下這段代碼: foreach ($data as$value) { $value[‘name‘] = ‘Hehe‘; } $data中原始的數據為: array(
在彈框中獲取foreach中遍歷的id值,並傳遞給地址欄(方法2)
ges 應該 我們 png 地址欄 each 獲取 賦值 有時 1.php有時候我們需要再彈框中獲取foreach中遍歷的數據(例如id),在彈框中點擊按鈕並傳遞給地址欄跳轉。那麽應該怎麽做呢。第二種方法。 2. 可以在彈框中給出一個input hidden 點擊按鈕彈窗時
SSM:spring+springmvc+mybatis框架中的XML配置文件功能詳細解釋
con initial -m and 整理 .get 尺寸 internal 頁面 SSM:spring+springmvc+mybatis框架中的XML配置文件功能詳細解釋 2016-04-14 23:40 13030人閱讀 評論(2) 收藏 舉報
Python中集合(set)的基本操作以及一些常見的用法
python set 集合 集合的一些常見用法 Python除了List、Tuple、Dict等常用數據類型外,還有一種數據類型叫做集合(set),集合的最大特點是:集合裏邊的元素是不可重復的並且集合內的元素還是無序的,所以一般情況下集合常用的兩個場景是:1.去重(如:列表去重);2.關
java中集合的擴容
map art 列表 eset ont 實現 ava 大小 ash 對於Java中的各種集合類,根據底層的具體實現,小結了一下大致有3種擴容的方式: 1、對於以散列表為底層數據結構實現的,(譬如hashset,hashmap,hashtable等),擴容方式為當鏈表數組的
Java中集合概念
code 速度慢 boolean his 都是 結合 rem [] 特點 1.集合是儲存對象的,長度可變,可以封裝不同的對象 2.叠代器: 其實就是取出元素的方式(只能判斷,取出,移除,無法增加) 就是把取出方式定義在集合內部,這樣取出方式就
MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder
.cn 創建 ron 子節點 homepage 解析 調用 sco title 在 <MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置與使用> 的demo中看到了SessionFactory的創建過程: SqlSessionFactory
Java中集合(List,Set,Map)
比例 正在 earch iterator 試圖 tor 元素 除了 一個 ArrayList 和Vector是采用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,都允許直接序號索引元素,但是插入數據要設計到數組元素移動等內存操作,所以索引數據快插入數據慢
JS中集合對象(Array、Map、Set)及類數組對象的使用與對比
new item 是否 匹配 全局搜索 用法 self star 刪除 原文地址 在使用js編程的時候,常常會用到集合對象,集合對象其實是一種泛型,在js中沒有明確的規定其內元素的類型,但在強類型語言譬如Java中泛型強制要求指定類型。 ES6引入了iterable類