記一次(mybatis)sql傳map,list,引數小結
阿新 • • 發佈:2019-02-01
1.簡單的map傳參
map的鍵值傳參只需要在sql中註明#key#,設定parameterClass="Map"即可
select id from table where name=#id#
2.list引數
像list,array引數一般結合in使用,即需要在語句中遍歷出來,網上看了下一般使用<foreach>標籤,即
其中collection是引數型別(list/array),但是在下畢竟小白一枚,出現錯誤:org.xml.sax.SAXParseException 必須宣告元素型別 "foreach"。這就比較尷尬了,因為沒找到解決原因,所以改換了另一種方式,設定parameterClass="java.util.List"然後使用<iterate>標籤:<foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach>
<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>