当前位置:   article > 正文

Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘yuan‘ for key ‘idx_userna_caused by: java.sql.sqlintegrityconstraintviolatio

caused by: java.sql.sqlintegrityconstraintviolationexception: duplicate entr

发送请求后,后端报错

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

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

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

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

1.异常

 查看数据库

 查看请求参数

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

更改后不报错

2.进行异常处理机制

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

  1. /**
  2. * 捕获SQL异常
  3. * @param ex
  4. * @return
  5. */
  6. @ExceptionHandler
  7. public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
  8. log.error("异常信息:{}", ex.getMessage());
  9. String message = ex.getMessage();
  10. if(message.contains("Duplicate entry")){
  11. //字段值重复异常
  12. String[] split = message.split(" ");
  13. String msg=split[2] + MessageConstant.ALREADT_EXIST;
  14. return Result.error(msg);
  15. }
  16. return Result.error(MessageConstant.UNKNOWN_ERROR);
  17. }

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

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/538917
推荐阅读
相关标签
  

闽ICP备14008679号