mybatisplus 批量插入100w
时间: 2023-11-21 13:57:27 浏览: 50
以下是使用MybatisPlus批量插入100w条数据的示例代码:
```java
List<User> userList = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
User user = new User();
user.setName("user" + i);
user.setAge(i % 100);
userList.add(user);
}
long start = System.currentTimeMillis();
userService.saveBatch(userList, 1000);
long end = System.currentTimeMillis();
System.out.println("插入100w条数据耗时:" + (end - start) + "ms");
```
在上述代码中,我们首先创建了一个包含100w个User对象的列表,然后调用了MybatisPlus提供的`saveBatch`方法进行批量插入。其中,第二个参数1000表示每1000条数据执行一次批量插入操作。
需要注意的是,为了提高批量插入的效率,我们可以在JDBC连接URL中添加`rewriteBatchedStatements=true`参数,以确保真正地进行批量插入操作。
相关问题
mybatisplus批量插入xml
mybatisplus中提供了多种批量插入的方式,其中一种方式是基于自定义的SQL语句(支持一千条以上,xml文件)。另外一种方式是基于mybatisplus的批量插入方法saveBatch(性能最优,但需要进行配置)。
在使用mybatisplus进行批量插入时,可以根据数据量大小和性能需求选择不同的方式。如果数据量较小,可以直接使用mybatisplus提供的saveBatch方法进行批量插入。但是这种方式是一条一条执行的,可能会有一定的性能瓶颈。
如果需要处理大量的数据量,可以考虑使用自定义的SQL语句进行批量插入。通过编写XML文件来定义批量插入的SQL语句,可以更加灵活地控制插入的逻辑。
请告诉我,你更希望了解哪种方式的mybatisplus批量插入?
mybatisplus 批量插入
MybatisPlus是一个基于Mybatis的增强工具库,在Mybatis的基础上加入了许多实用的增强功能,其中就包括批量插入。
通过MybatisPlus实现批量插入,可以通过以下步骤实现:
1. 创建一个List对象,用于存储要批量插入的数据。
2. 在实体类中使用注解@TableId(value = "id", type = IdType.AUTO)来指定主键生成策略。
3. 在Mapper接口中定义一个批量插入的方法,方法参数类型为List,使用注解@Param来指定参数名称。
4. 在Mapper映射文件中,使用foreach标签遍历List集合中的数据,将数据插入到数据库中。
举例来说,假设我们要批量插入学生信息,代码实现如下:
1. 创建一个List对象:
List<Student> list = new ArrayList<>();
2. 在实体类中使用注解@TableId指定主键生成策略:
@TableId(value = "id", type = IdType.AUTO)
public class Student {
private Long id;
...
}
3. 在Mapper接口中定义批量插入的方法:
void insertBatch(@Param("list") List<Student> list);
4. 在Mapper映射文件中,使用foreach标签遍历List集合中的数据:
<insert id="insertBatch" parameterType="java.util.List">
insert into student(id, name, age, gender) values
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age},#{item.gender})
</foreach>
</insert>
通过以上步骤,就可以轻松地实现MybatisPlus批量插入。值得注意的是,在使用批量插入时,需要考虑数据库中的主键是否重复,需要根据具体情况选择不同的主键生成策略。