现在,有这么一个使用场景,我们有一个传参对象的集合,我们现在要把这个集合存入数据库中。我们要使用mybatis的<foreach>
标签来实现批量新增。
示例SQL
<!--将日志分析结果存入数据库-->
<insert id="insertAnalyzResult">
INSERT INTO oss_record VALUES
<foreach collection="list" item="entity" separator=",">
(REPLACE(UUID(),"-",""),#{entity.bcCode},#{entity.bcName},#{entity.filePath},#{entity.operateTime},#{entity.operateWay},#{entity.ip},#{entity.status})
</foreach>
</insert>
备注:
- collection = “array” / collection = “list”
是数组类型,还是集合类型(一共有三种类型,分别为List,[](array)
, Map三种)该参数为必选。 - item = “userList” 循环体中的具体对象,在list和数组中是其中的对象,在map中是value。 该参数为必选。
- open = “(” separator = “,” close = “)”
开始符号,分隔符号,结束符号(常用在in(),values()时)该参数可选。 - index = " " 在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
- separator = “,”
元素之间的分隔符。例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选