JDBC批量插入20万条数据且不能重复到mysql,求解。。。

严小超 2012-09-19 03:07:27
就插入两个字段,id和code,id为自增长,code我用java随机生成六位的字符串。
JDBC批量插入20万条数据且不能重复到mysql,要求不能重复,难道每次插入前都要查询数据库来判断code重复与否?
求解答。。。
...全文
617 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfm2000 2012-09-19
  • 打赏
  • 举报
回复
无需那么复杂,把code设为唯一索引。随便插,如果失败就忽略,再插下一条,直到成功满20万。

6位随机字符,即使是只允许 A-Z也有3亿的组合,重复有个百多条最多了
严小超 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

就按你描述的说,是每次插入前都要查询判断是否已存在,这个方法虽然效率低但可以实现你想要的。

如果你现实环境允许的话,我这里有个更好的方法。在20万数据插入数据库前,将其code添加到一个Set集合,利用Set集合的不重复性,再将Set集合里的code插入到数据库,这样就高效很多了。
[/Quote]
兄弟,非常感谢你。照你的方法,现在OK了。搞定了。非常感谢。模版。
hj86073026 2012-09-19
  • 打赏
  • 举报
回复
最好的方法就是先存set中,再批量存入。楼主别纠结了。
  • 打赏
  • 举报
回复

像一楼说的
放到set集合里去重复 、然后在批量保存、




严小超 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你怎么就不能换一种思路?你先把code从数据库中查出来,放到一个集合中,然后用集合的removeAll方法,就选出了重复了,然后你在插入,肯定就不会重复了
[/Quote]
我数据库里面现在已经有20W条记录了,也全部查出来吗?
m540920181 2012-09-19
  • 打赏
  • 举报
回复
由于使用Set不允许里面有相同的值存在,你可以通过随机数给set20万个数据,然后在进行添加操作,就可以了
宏Lee 2012-09-19
  • 打赏
  • 举报
回复
你怎么就不能换一种思路?你先把code从数据库中查出来,放到一个集合中,然后用集合的removeAll方法,就选出了重复了,然后你在插入,肯定就不会重复了
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
你在java里随机生成不重复的code不就行了,
到数据库里check效率多低啊。。。
zxhcloth 2012-09-19
  • 打赏
  • 举报
回复
就按你描述的说,是每次插入前都要查询判断是否已存在,这个方法虽然效率低但可以实现你想要的。

如果你现实环境允许的话,我这里有个更好的方法。在20万数据插入数据库前,将其code添加到一个Set集合,利用Set集合的不重复性,再将Set集合里的code插入到数据库,这样就高效很多了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧