-
MyBatis Plus 提供了
saveBatch
方法,该方法专门用于批量插入操作。它可以接收一个实体类的集合,并且可以选择是否每次插入后都刷新(提交)事务。 -
MyBatis Plus 在执行插入操作时,如果传入的是一个集合(List、Set等),那么它会自动识别并进行批量插入。不过,这种方式的批量插入是依赖于 MyBatis 自身的批量操作支持,可能并不是最优的。
-
有时候,为了更精细地控制批量插入的行为,你可能需要编写自定义的 SQL 语句。MyBatis Plus 支持通过注解或 XML 配置文件来编写自定义 SQL。
-
使用
saveBatch
方法举例
// 1. 定义实体类
public class User {
private Long id;
private String name;
private Integer age;
// getters and setters
}
// 2. 定义 Mapper 接口
public interface UserMapper extends BaseMapper<User> {
}
// 3. 定义 Service 接口
public interface UserService extends IService<User> {
}
// 4. 实现 Service 接口
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
// 批量插入用户
public void insertUsers(List<User> users) {
saveBatch(users); // 默认每次插入 1000 条数据,可以通过设置 `batchSize` 属性来调整
// 或者使用 saveBatch(users, batchSize) 方法来指定每次插入的数据量
}
}
// 5. 在你的业务代码中调用
@Autowired
private UserService userService;
public void someBusinessMethod() {
List<User> users = new ArrayList<>();
// 假设这里添加了多个用户到 users 列表中
userService.insertUsers(users);
}