需求:
传入的参数是list集合,集合里面是多个实体对象,要将其依次插入到数据库中
代码实现:
<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into TABLE_NAME (NAME, TYPE, ID)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.name},
#{item.type},
#{item.id}
)
</foreach>
</insert>
使用标签:
foreach
可调标签属性:
- collection : list | array | map //目前只试过list
- item : list中每组对象(元素)别名,可随意自定义
- index : 索引值,可自定义 separator : 拼接每组数据的分隔符,按需求确定,我这插入多个对象,用逗号分隔符
- open : 语句拼接以什么符号开始,sql语句上的需要,比如我这里在foreach里面加了"(",就不需要加这个属性
- close : 语句拼接以什么符号结束,sql语句上的需要,比如我这里在foreach里面加了")",就不需要加这个属性
- #{item.name}: 这个item.name, item是自己设置的对象名,name是对象的属性
转换成Sql语句:
insert into table_name (id, type, name) values (1, boy, Amy), (2, girl, Ben)