java批量上传错误返回_mybatis批量导入 ,出现异常全部不添加(回滚)

public int importModel(MultipartFile file) throws Exception{

String fileName = file.getOriginalFilename();

String suffxName = fileName.substring(fileName.lastIndexOf(".",fileName.length()) );

//System.out.println(fileName+",后缀名:"+suffxName);

String prefix=fileName.substring(fileName.lastIndexOf("."));

final File excelFile = File.createTempFile(UUID.randomUUID().toString(), prefix);

//批量处理

SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH,false);

commericalModelMapper = session.getMapper(CommericalModelMapper.class);

// MultipartFile to File

file.transferTo(excelFile);

//判断excelp版本

Workbook workbook = null;

if(suffxName.equals(".xlsx")){

workbook = new XSSFWorkbook(new FileInputStream(excelFile));

}else{

workbook = new HSSFWorkbook(new FileInputStream(excelFile));

}

int count = 0;

if(workbook != null){

//获取excel中的数据,转换为实体类

Sheet sheet = workbook.getSheetAt(0);

List commericalModelList = CommericalModelResult.excelToModel(sheet);

int limitCount = 1000;

//进行批量添加操作(有一条不成功,全部回滚)

if(commericalModelList != null && commericalModelList.size() > 0){

for(int i = 0 ; i < commericalModelList.size();i++){

CommericalModel commericalModel = commericalModelList.get(i);

commericalModel.setCreateDate(new Date());

commericalModel.setUpdateDate(new Date());

commericalModel.setModelIsDelete((short)1);

commericalModelMapper.insert(commericalModel);

/*if(i != 0 && i%limitCount == 0){

//数量达到1000提交一次

session.commit();

} */

count++;

}

session.commit();

}

}

//删除临时文件

if(excelFile.exists()){

excelFile.delete();

}

return count;

}

SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH,false);

commericalModelMapper = session.getMapper(CommericalModelMapper.class);

commericalModelMapper.insert(commericalModel);

添加的时候使用这个,分批次导入,可以计入那行是错误的,返回;成功添加了多少行都可以处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值