mybatis批量新增foreach
时间: 2023-08-16 10:09:53 浏览: 129
在MyBatis中,可以使用<foreach>标签来实现批量插入数据。首先,在SysUserMapper.xml文件中,我们需要定义一个id为"batchInsert"的<insert>映射。在该映射中,我们使用<foreach>标签来遍历sysUserList集合,将集合中的每个元素插入到数据库中。具体的<insert>映射如下所示:
<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id">
insert into sys_user (user_name, user_code, user_info, status)
values
<foreach collection="sysUserList" item="user" separator=",">
(#{user.userName}, #{user.userCode}, #{user.userInfo}, #{user.status})
</foreach>
</insert>
接下来,在SysUserController.java文件中,我们可以编写一个名为batchInsert的方法来实现批量插入操作。在该方法中,我们创建一个包含多个SysUser对象的sysUserList集合,并通过循环为每个SysUser对象设置相应的属性值。然后,我们调用sysUserService的batchInsert方法将sysUserList集合传递给MyBatis进行批量插入操作。如果插入成功,返回插入的记录数;否则,返回插入失败的提示信息。具体的代码如下所示:
@PostMapping("/batchInsert")
public String batchInsert() {
List<SysUser> sysUserList = new ArrayList<>();
for(int i = 0; i < 5; i++) {
SysUser sysUser = new SysUser();
sysUser.setUserName("testBatch" + i);
sysUser.setUserCode("testBatch" + i);
sysUser.setUserInfo("这是第" + i + "条测试批量新增信息");
sysUser.setStatus("0");
sysUserList.add(sysUser);
}
int count = sysUserService.batchInsert(sysUserList);
if(count > 0) {
System.out.println("成功批量新增信息" + count + "条");
return "成功批量新增信息" + count + "条";
}
return "批量新增失败";
}
通过以上步骤,我们就可以使用MyBatis的<foreach>标签实现批量插入操作了。
#### 引用[.reference_title]
- *1* *2* *3* [mybatis动态SQL-<foreach>标签实现批量新增](https://blog.csdn.net/threelifeadv/article/details/122676586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文