DataAccessException
DataAccessException是Mybatis封装的异常,继承了RuntimeException这个类。
步骤
- Mapper接口抛出DataAccessException异常
int insertSelective(BusArea record) throws DataAccessException;
- ServiceImpl抛出DataAccessException异常
@Override
public boolean insertSelective(BusArea busArea) throws DataAccessException {
boolean result = this.busAreaMapper.insertSelective(busArea) > 0;
return result;
}
- 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;
}