Mybatis-foreach标签使用进行批量操作
一、准备内容
创建数据库表user
CREATE TABLE ` user` (
` id` int NOT NULL ,
` name` varchar ( 255 ) COLLATE utf8mb4_general_ci DEFAULT NULL ,
PRIMARY KEY ( ` id` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
创建User实体
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
}
二、批量添加
UserMapper.xml
< insert id = " insertBatch" parameterType = " java.util.List" >
INSERT INTO user (id,name)
VALUES
< foreach collection = " userList" item = " user" separator = " ," >
(#{user.id},#{user.name})
</ foreach>
</ insert>
UserMapper
int insertBatch ( @Param ( "userList" ) List < User > userList) ;
UserService
int insertBatch ( List < User > userList) ;
UserServiceImpl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int insertBatch ( List < User > userList) {
return userMapper. insertBatch ( userList) ;
}
}
UserController
@RestController
@RequestMapping ( "/user" )
public class UserController {
@Autowired
UserService userService;
@PostMapping ( "/batch/insert" )
public int insertBatch ( @RequestBody List < User > userList) {
return userService. insertBatch ( userList) ;
}
}