mybatisplus如何取批量插入的id
时间: 2023-08-24 08:07:28 浏览: 282
在 MyBatis-Plus 中进行批量插入时,可以使用 `insertBatch` 方法来批量插入数据,并且可以获取到插入后的主键 ID。以下是一个示例代码:
```java
// 导入相关的包
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
// 定义实体类和对应的 Mapper 接口
public class User {
private Long id;
private String name;
// getter 和 setter 方法省略...
}
public interface UserMapper extends BaseMapper<User> {
}
// 定义 Service 类
public interface UserService extends IService<User> {
List<Long> batchInsertUsers(List<User> userList);
}
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
public List<Long> batchInsertUsers(List<User> userList) {
baseMapper.insertBatchSomeColumn(userList);
return userList.stream().map(User::getId).collect(Collectors.toList());
}
}
```
在上述代码中,`batchInsertUsers` 方法使用了 `insertBatchSomeColumn` 方法来批量插入数据,并且通过遍历插入的对象列表,获取每个插入后的主键 ID,并将其添加到一个新的列表中返回。
注意:`insertBatchSomeColumn` 方法会自动填充实体类中的主键字段。如果你的表中的主键不是自增的,需要在实体类中手动设置主键值。
阅读全文