SpringBoot使用Mybatis-plus批量插入
首先导入Mybatis-plus依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4</version>
</dependency>
示例代码:
BatteryBms代表的是要批量插入的实体类,换成项目中自己的实体类,这里用8000条数据做测试
@Resource
SqlSessionFactory sqlSessionFactory;
@GetMapping("/insertBatch")
@ResponseBody
public List<BatteryBms> insertBatch(){
List<BatteryBms> list = new ArrayList<>();
int j = 0;
for (int i = 0; i < 8000 ;i++){
BatteryBms bms = new BatteryBms();
bms.setBatteryNumber(String.valueOf(++j));
list.add(bms);
}
MybatisBatch<BatteryBms> mybatisBatch = new MybatisBatch<>(sqlSessionFactory, list);
MybatisBatch.Method<BatteryBms> method = new MybatisBatch.Method<>(BatteryBmsMapper.class);
mybatisBatch.execute(method.insert());
return batteryBmsService.list();
}
mapper层代码:
mapper层代码是官方模板生成,继承了BaseMapper
package com.linux.linuxtest.mapper;
import com.linux.linuxtest.domain.BatteryBms;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface BatteryBmsMapper extends BaseMapper<BatteryBms> {
}
测试结果:
8000条数据在本地数据库大概是 700-800 毫秒之间