问题描述:
增加员工的时候添加相同的用户名,会报错误 应该怎么正确的处理这个问题?
分析:
1、当想要新增一个用户信息的时候,发现该用户名已经在数据库中存在了。
2、后台的报错信息:
3、数据库中表结构存在唯一约束,不能重复。
解决:
通过全局异常处理器来处理。
进入到异常处理的包下面,针对该异常信息添加专门的方法去处理。
/**
* 处理SQL异常
* @param ex
* @return
*/
@ExceptionHandler
public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
//Duplicate entry 'zhangsan' for key 'employee.idx_username'
String message = ex.getMessage();
if(message.contains("Duplicate entry")){
String[] split = message.split(" ");
String username = split[2];
String msg = username + MessageConstant.ALREADY_EXISTS;
return Result.error(msg);
}else{
return Result.error(MessageConstant.UNKNOWN_ERROR);
}
}
代码中的ALREADY_EXISTS 和 UNKNOWN_ERROR 等代表着已存在和位置错误的意思,这里为了代码的整洁,将该两个字符储存成常量来调用。