Mybatis捕获异常

DataAccessException

DataAccessException是Mybatis封装的异常,继承了RuntimeException这个类。
image

步骤

  1. Mapper接口抛出DataAccessException异常
    int insertSelective(BusArea record) throws DataAccessException;
  1. ServiceImpl抛出DataAccessException异常
    @Override
    public boolean insertSelective(BusArea busArea)  throws DataAccessException {
        boolean result = this.busAreaMapper.insertSelective(busArea) > 0;
        return result;
    }
  1. Controller捕获异常,在捕获DataAccessException之前可以捕获其他runtime异常。
    @RequestMapping("insertSelective")
    @ResponseBody
    public Map insertSelective(BusArea area) {
        String uuid = UUIDGenerator.getUUID();
        area.setId(uuid);

        Map resultmap = new HashMap();
        String code = "fail";
        String msg = "添加失败!";

        try {
            boolean rb = this.busAreaService.insertSelective(area);
            if (rb){
                code = "success";
                msg = "添加成功!";
            }
        }catch (DuplicateKeyException e){
            msg = "该区域名称已存在,请勿重复添加!";
        }catch (DataAccessException e){
            msg = "添加出现异常!";
        }
        resultmap.put("code",code);
        resultmap.put("msg",msg);
        return resultmap;
    }
如果这篇文章对你有用,麻烦关注一下本人微信公众号,关注送福利哦~
微信公众号二维码
不定期安利各种插件,编程技巧,编程思想,欢迎交流~
原文地址:https://www.cnblogs.com/aeolian/p/14703942.html