今天遇到了一个需要批量插入数据的问题,之前在Java逻辑里面通过循环执行单个插入来完成批量插入数据,但是不停的建立数据库连接比较耗费性能,于是通过foreach来批量插入数据,根据MySQL的批量插入语句:
insert into table (colums) value((values),(values),(values));
所以foreach只要循环生成values就可以了,话不多说先贴代码:
<insert id="insTeamUsers" parameterType="team" >
insert into teamUsers(TeamId,UserId) values
<foreach collection="userId" item="item" index="index" separator=",">
(#{id},#{item})
</foreach>
</insert>
/**
* 插入小组用户数据
* teamUsers表
* @param team
*/
void insTeamUsers(Team team);
实体类:
private String id;
//小组名
private String teamName;
//班级id
private String classId;
//用户id
private List<String> userId;
public Team(String id,String teamName,String classId,List<String> userId) {
this.id= id;
this.teamName = teamName;
this.classId = classId;
this.userId = userId;
}
首先感谢这位大佬的无私奉献
foreach属性详解