Java事務管理@Transactional,回滾;


在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;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM