搜索
您的当前位置:首页正文

Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘yuan‘ for key ‘idx_userna

来源:好走旅游网

发送请求后,后端报错

这个错误是 Duplicate entry(重复值)

意思是在底层你的数据库添加了一个字段不可重复的设置,当你第一次去测试该请求时,由于并没有对该异常进行处理,所以会爆出此错误。

修正:查看数据库,看看是不是某个字段值重复了,修改一下字段,重新请求即可;

后续要对次异常进行异常的处理机制,在请求页面告知用户,字段重复

1.异常

 查看数据库

 查看请求参数

 两者一样,因为底层数据库的username字段设置了unique,所以需要更改请求参数的username

更改后不报错

2.进行异常处理机制

在全局异常处理器中添加处理方法

 /**
     * 捕获SQL异常
     * @param ex
     * @return
     */
    @ExceptionHandler
    public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
        log.error("异常信息:{}", ex.getMessage());
        String message = ex.getMessage();
        if(message.contains("Duplicate entry")){
            //字段值重复异常
            String[] split = message.split(" ");
            String msg=split[2] + MessageConstant.ALREADT_EXIST;
            return Result.error(msg);
        }
        return Result.error(MessageConstant.UNKNOWN_ERROR);
    }

添加后重新跑代码,发请求

 在前端就会给出报错信息了

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top