日期:2014-05-17  浏览次数:20694 次

JDBC批量插入20万条数据且不能重复到mysql,求解。。。
就插入两个字段,id和code,id为自增长,code我用java随机生成六位的字符串。
JDBC批量插入20万条数据且不能重复到mysql,要求不能重复,难道每次插入前都要查询数据库来判断code重复与否?
求解答。。。

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

如果你现实环境允许的话,我这里有个更好的方法。在20万数据插入数据库前,将其code添加到一个Set集合,利用Set集合的不重复性,再将Set集合里的code插入到数据库,这样就高效很多了。
------解决方案--------------------
你在java里随机生成不重复的code不就行了,
到数据库里check效率多低啊。。。
------解决方案--------------------
你怎么就不能换一种思路?你先把code从数据库中查出来,放到一个集合中,然后用集合的removeAll方法,就选出了重复了,然后你在插入,肯定就不会重复了
------解决方案--------------------
由于使用Set不允许里面有相同的值存在,你可以通过随机数给set20万个数据,然后在进行添加操作,就可以了
------解决方案--------------------

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





------解决方案--------------------
最好的方法就是先存set中,再批量存入。楼主别纠结了。