for循环如何提高效率
HyBasicsMaterial hyBasicsMaterial = new HyBasicsMaterial();
//查询物料表里面的包规,得出需要多少张条形码
Long supplierCodeSum = hyBarCodeTem.getCustomerMaterialSum();
//获取物料包规
String customerMaterialCode = hyBarCodeTem.getCustomerMaterialCode();
hyBasicsMaterial.setCustomerMaterialCode(customerMaterialCode);
HyBasicsMaterial hyBasicsMaterial1 = hyBasicsMaterialService.selectHyBasicsMaterial(hyBasicsMaterial);
//包规数量
String materialSku = hyBasicsMaterial1.getMaterialSku();
List batchList = new ArrayList();
long num = 0;
Long valueOf = Long.valueOf(materialSku);
//如果是整数
long l = System.currentTimeMillis();
if (supplierCodeSum % valueOf == 0) {
num = supplierCodeSum / valueOf;
for (long i = 0; i < num; i++) {
HyBarCodeTem saveItem = HyBarCodeTem.builder().build();
saveItem.setCustomerMaterialCode(hyBarCodeTem.getCustomerMaterialCode());
saveItem.setCreateTime(DateUtils.getNowDate());
saveItem.setCustomerMaterialCodeNo(materialSku);
saveItem.setIsValid("0");
batchList.add(saveItem);
}
} else {
//如果有零头
num = supplierCodeSum / valueOf + 1;
for (long i = 0; i < num; i++) {
HyBarCodeTem saveItem = HyBarCodeTem.builder().build();
saveItem.setCustomerMaterialCode(hyBarCodeTem.getCustomerMaterialCode());
saveItem.setCreateTime(DateUtils.getNowDate());
saveItem.setIsValid("0");
if (i == num - 1) {
saveItem.setCustomerMaterialCodeNo(String.valueOf(supplierCodeSum % valueOf));
} else {
saveItem.setCustomerMaterialCodeNo(materialSku);
}
batchList.add(saveItem);
}
}
List list = new ArrayList<>();
// batchList 为空不能保存
this.saveBatch(batchList);
for (HyBarCodeTem barCodeTem : batchList) {
Map
200条大概要10s左右,如果多的话,时间更长,请问有啥提高效率的方法吗
一般情况下,在MybatisPlus中使用saveBatch方法进行批量保存只需要:在数据库连接串中添加&rewriteBatchedStatements=true,并将MySQL驱动保证在5.0.18以上即可。