mysql报13117_MySql插入数据时错误Duplicate entry '131' for key 'PRIMARY'

今天在进行开发的过程中,遇到MySQL数据库插入数据时抛出异常:

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '131' for key 'PRIMARY'

9db4efde19aa889a58a19b6fc06a3f98.png

左上角的红色部分是我已经插入正确的数据,这个错误的出现感觉是随机的。

顺便讲一下我这个错误出现的过程:我通过一个循环操作来向数据库中的某张表进行数据的插入,数据层我使用的是MyBatis,我们都知道MyBatis自动生成的xxxMapper.java类中有很多基本的操作数据库的方法,我就是调用了里面的insert方法。然后就出现了上面的异常。

从错误信息中我们可以知道该错误的出现是因为插入数据时主键已经在数据库表中已经存在。但是,我就纳闷了,我MySql数据库中该表的主键设置是自动增长的,难不成没有增长,但是,它又有部分的数据插入成功,这就更让人纳闷了。因此,我通过查找MyBatis的相关资料,找到了解决方案。

解决的方法:找到MyBatis系统自动生成的insert方法。并将红色部分去掉。

324219156e7d24a3a9e41aa4d10572ed.png

因为我们设置的是主键自增长,所以在插入的时候不需要插入主键字段了并且不需要查找主键最大值。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2013-11-20 17:57

浏览 578

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值