add 新增 saveOrUpdateAll 方法 可完美替代 saveOrUpdateBatch 高性能

This commit is contained in:
疯狂的狮子li
2021-08-26 09:58:57 +08:00
parent 3e5ae811bf
commit 7c6fe5f244
3 changed files with 56 additions and 30 deletions

View File

@ -35,21 +35,38 @@ public class TestBatchController extends BaseController {
* 新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大)
*/
@ApiOperation(value = "新增批量方法")
@PostMapping()
@PostMapping("/add")
// @DataSource(DataSourceType.SLAVE)
public AjaxResult<Void> add() {
List<TestDemo> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
TestDemo testDemo = new TestDemo();
if (i % 2 == 0) {
list.add(testDemo.setId((long) i + 1).setTestKey("批量更新").setValue("批量更新"));
} else {
list.add(testDemo.setOrderNum(-1L).setTestKey("批量新增").setValue("测试新增"));
}
list.add(new TestDemo().setOrderNum(-1L).setTestKey("批量新增").setValue("测试新增"));
}
return toAjax(iTestDemoService.saveAll(list) ? 1 : 0);
}
/**
* 新增或更新 可完美替代 saveOrUpdateBatch 高性能
*/
@ApiOperation(value = "新增或更新批量方法")
@PostMapping("/addOrUpdate")
// @DataSource(DataSourceType.SLAVE)
public AjaxResult<Void> addOrUpdate() {
List<TestDemo> list = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
list.add(new TestDemo().setOrderNum(-1L).setTestKey("批量新增").setValue("测试新增"));
}
iTestDemoService.saveAll(list);
for (int i = 0; i < list.size(); i++) {
TestDemo testDemo = list.get(i);
testDemo.setTestKey("批量新增或修改").setValue("批量新增或修改");
if (i % 2 == 0) {
testDemo.setId(null);
}
}
return toAjax(iTestDemoService.saveOrUpdateAll(list) ? 1 : 0);
}
/**
* 删除批量方法
*/