失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Duplicate entry ‘‘ for key ‘Primary‘

Duplicate entry ‘‘ for key ‘Primary‘

时间:2022-09-14 18:52:47

相关推荐

Duplicate entry ‘‘ for key ‘Primary‘

问题描述

在公司业务中需要批量向mysql中写数据,总是出现错误:Duplicate entry ‘[info]’ for key ‘PRIMARY’;

思考

出现错误的原因是mysql数据表设置了主键primary key,而批量写入的数据中设了主键的字段与数据库中的数据有重复。那么解决方法就简单了,剔除重复的数据。

解决方法

拿到报错信息,从数据中移除重复的数据,重新执行写入操作,完成。

try{//此处是可能会出现此异常的java语句}catch(SQLException e) {//获取错误信息String message = e.getMessage();if (message.matches("Duplicate entry (.*) for key 'PRIMARY'")) {//拿到重复的room_id,这里的CharacterFilter是我的工具类String rejected = CharacterFilter.numberFilter(message);//移除重复数据,这里的data是Listreject(data,rejected);}}/** 剔除 */public void reject(List<你的实体类> data, String rejected) {//循环遍历Listfor (Iterator<FlowChartCategory> iterator = data.iterator();iterator.hasNext();) {//拿到主键信息String 主键 = iterator.next().getXXXXX();//比对if (主键.equals(rejected))//移除重复的数据iterator.remove();}}

其中CharacterFilter.numberFilter()是我自定义的工具类及方法,主要作用就是从字符串中过滤其他字符拿到数字。详情参考:/yeah_you_are/article/details/120676629?spm=1001..3001.5501

如果觉得《Duplicate entry ‘‘ for key ‘Primary‘》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。