1. 程式人生 > >記一次(mybatis)sql傳map,list,引數小結

記一次(mybatis)sql傳map,list,引數小結

1.簡單的map傳參

map的鍵值傳參只需要在sql中註明#key#,設定parameterClass="Map"即可

select id from table where name=#id#

2.list引數

像list,array引數一般結合in使用,即需要在語句中遍歷出來,網上看了下一般使用<foreach>標籤,即

<foreach collection="list" item="item" index="index"
            open="(" close=")" separator=",">
            #{item}
</foreach>
其中collection是引數型別(list/array),但是在下畢竟小白一枚,出現錯誤:org.xml.sax.SAXParseException 必須宣告元素型別 "foreach"。這就比較尷尬了,因為沒找到解決原因,所以改換了另一種方式,設定parameterClass="java.util.List"然後使用<iterate>標籤:
<iterate open="(" close=")" conjunction=",">  
            #list[]#  
</iterate> 
3.傳的引數型別是map形式,但map中包含list集合

簡單描述下:

Map<String, Object> param=new HashMap<String, Object>(); 
param.put("t_t1", time1);
List<String> ids=new ArrayList<>();
param.put("t_list", ids);
要是使用<foreach>的話,和 2 寫法一樣,但我寫的報錯也是一樣……所以用<iterate>標籤依然能夠實現,parameterClass="Map"
 <iterate open="(" close=")" conjunction="," property="t_list"> 
			#t_list[]# 
 </iterate>