记一次sql传map,list,参数小结

来源:互联网 发布:淘宝试用协议怎么同意 编辑:程序博客网 时间:2024/06/05 16:53

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>