在service方法上用注解@Transactional,不要在该方法上捕获异常,在调用方捕获,否则不触发事务机制。

   @Override
    @Transactional
    public int inputProviceData(MultipartFile file)throws Exception {
        try {//不触发事务机制,需将try...catch去掉,在controller中捕获
           
            ctyProvinceMapper.deleteAll();
            Sheet sheet = ExcelFileUtil.getSheet(file);
            for(Row row : sheet){
                if(row.getRowNum() == 0){
                    continue;
                }
                Cell cell0 = row.getCell(0);
                cell0.setCellType(Cell.CELL_TYPE_STRING);
                String provinceId = cell0.getStringCellValue();
                String provinceName = row.getCell(1).getStringCellValue();
                CtyProvince ctyProvince = new CtyProvince();
                ctyProvince.setProvinceId(Long.valueOf(provinceId));
                ctyProvince.setProvinceName(provinceName);
                ctyProvinceMapper.insert(ctyProvince);
            }
        }catch (Exception e){
            e.printStackTrace();
        }

        return 0;
    }
posted on 2020-03-18 15:54  lazyli  阅读(2070)  评论(0编辑  收藏  举报