Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘‘six‘ for key ‘user_login

2021-08-15 20:14:27.416 ERROR 16576 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DuplicateKeyException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'six' for key 'user_loginName_uindex'
### The error may exist in file [E:\shop\target\classes\mybatis\mapper\UserMapper.xml]
### The error may involve com.hu.shop.mapper.UserMapper.save-Inline
### The error occurred while setting parameters
### SQL: insert into user(loginName,userName,password,gender,identityCode,email,mobile) values(?,?,?,?,?,?,?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'six' for key 'user_loginName_uindex'
; Duplicate entry 'six' for key 'user_loginName_uindex'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'six' for key 'user_loginName_uindex'] with root cause

运行spring boot显示以上错误,但数据还是成功的插入到数据库中,报错的意思时插入了重复的数据,向唯一字段插入相同数据。

解决过程:

1.检查了我的数据库表发现数据库表中添加了Unique的约束。Unique约束是唯一性约束,可以确保一列或者几列不出现重复值。

 2.我去掉了Unique,运行发现数据库直接插入了两行一模一样的数据,说明我的注册功能的代码运行了两遍,再检查代码发现我return的是login页面。

 返回到login页面时的url为http://localhost:8080/register?userName=%E8%B5%B5%E5%85%AD&identityCode=456795555225452&email=457698826%40qq.com&mobile=1550000&gender=0&loginName=six&password=,这时项目又将数据存储了一遍造成了数据重复。

最后return的是重定向的login:return "redirect:/login";项目正常运行。

return ”login“是转发,url不发生改变

return "redirect:/login";是重定向,url发生改变

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误信息是由于违反了数据库的唯一约束条件导致的。具体来说,当插入或添加数据时,具有唯一约束条件的列值重复了,就会报出这个错误。\[2\]在你提供的例子中,错误信息是"Duplicate entry '5' for key 'user_student.PRIMARY'",意味着在'user_student'表的'PRIMARY'键中已经存在了值为5的重复记录。\[3\]这个错误通常是由于插入重复的主键值或唯一索引值导致的。要解决这个问题,你可以检查你的数据插入操作,确保插入的值在相应的列中是唯一的。 #### 引用[.reference_title] - *1* *2* [Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘xxx‘ for key ‘xxx...](https://blog.csdn.net/lvoelife/article/details/129749139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java.sql.SQLIntegrityConstraintViolationException ORA-00001 违反唯一约束条件](https://blog.csdn.net/m0_54850825/article/details/124267188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值