用mabatisplus数据库一次性插入上万条数据
时间: 2024-02-25 11:54:41 浏览: 133
MyBatis-Plus 是一个基于 MyBatis 的增强工具,在 MyBatis 的基础上提供了更加便捷的操作数据库的方式。在 MyBatis-Plus 中,可以使用 `insertBatch` 方法一次性插入上万条数据。
下面是一个示例代码:
```java
List<User> userList = new ArrayList<>();
// 填充 userList
int batchSize = 1000; // 每批次提交的数量
int totalSize = userList.size();
int batchCount = (totalSize + batchSize - 1) / batchSize; // 批次数
for (int i = 0; i < batchCount; i++) {
int fromIndex = i * batchSize;
int toIndex = Math.min((i + 1) * batchSize, totalSize);
List<User> subList = userList.subList(fromIndex, toIndex);
mapper.insertBatch(subList);
}
```
在上面的代码中,`userList` 是要插入的数据列表,`batchSize` 是每批次提交的数量,`batchCount` 是批次数。将 `userList` 拆分成多个子列表,每个子列表最多包含 `batchSize` 条数据,然后使用 `insertBatch` 方法插入每个子列表中的数据。循环 `batchCount` 次,即可一次性插入所有数据。
需要注意的是,在执行批量插入的时候,为了避免内存溢出,需要将数据拆分为多个批次,每个批次的数据量不能太大。同时,如果插入的数据量非常大,可能会影响数据库的性能,需要根据实际情况来选择合适的批次大小和提交频率。
阅读全文