怎么向数据库的一张表插入上万条不重复的随机数呢?

时间:2022-04-22 23:25:25
怎么写方法可以产生上万条不重复的随机数呢? 最好是前面带两位字母 后面跟6位数字,,(例如ZD689542),怎么可以产生从
AA000001到ZZ999999 的不重复的数字呢  然后再用 hibernate+spring用hql语句高效率的插入数据库的一张表中呢。。?求大神指点指点,,

13 个解决方案

#1


说原始需求吧

#2


引用 1 楼 zuoziji_lj 的回复:
说原始需求吧


就是生成两个字母加6个数字的一个验证码哈  要随机不重复生成..  但是我怕这个大数据插入数据表会造成很慢。。所以请大神指点一下生成随机数的方法怎么写。。还有什么好的方式插入数据库,,实在不行我就用最原始的方法插入进去了

#3


如果是随机就可能产生重复,如果想不重复插入数据库就需要判断,判断就会导致效率降低!坐等大神来解决问题!

#4


验证码居然写死??

验证码要设计成动态的,比如一个请求页面,后台生成一个验证码,并且放到request中,前台输入错误,后台要重新生成验证码

#5


格式可以改吗?随机验证码+计数,保证不重复

#6


引用 4 楼 huxiweng 的回复:
验证码居然写死??

验证码要设计成动态的,比如一个请求页面,后台生成一个验证码,并且放到request中,前台输入错误,后台要重新生成验证码


这个不是验证码哈  不是页面登陆的验证码  只是需要这样一大串数据 不重复的  要AA000001到ZZ999999中的数据哈  

#7


引用 5 楼 zuoziji_lj 的回复:
格式可以改吗?随机验证码+计数,保证不重复


不能改诶。。0.0  必须要这个AA000001到ZZ999999

#8


我说错了。。。 不好意思各位  我的意思是AA100000到ZZ999999中  生成N个不重复的数字  不是全部生成哈  比如我一次值生成100个  这100个都是在这个区间里面的哈。。

#9


插入上万条记录,没多少,1分钟的执行时间都不要。

#10


引用 5 楼 zuoziji_lj 的回复:
格式可以改吗?随机验证码+计数,保证不重复


要不这个发我试试。。。感谢大神。。

#11


引用 10 楼 tangyongdi 的回复:
Quote: 引用 5 楼 zuoziji_lj 的回复:

格式可以改吗?随机验证码+计数,保证不重复


要不这个发我试试。。。感谢大神。。


String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random random = new Random();  
StringBuilder builder = new StringBuilder();
String[] str = new String[10000]; 
for(int i=0;i<10000;i++){
builder.setLength(0);
builder.append(s.charAt(random.nextInt(23))).append(s.charAt(random.nextInt(23))).append((random.nextInt(90)+10)*10000 + i);
str[i] = builder.toString();
}

#12


该回复于2014-04-02 12:28:26被版主删除

#13


为什么 不放到MAP里呢,无序不重复

#1


说原始需求吧

#2


引用 1 楼 zuoziji_lj 的回复:
说原始需求吧


就是生成两个字母加6个数字的一个验证码哈  要随机不重复生成..  但是我怕这个大数据插入数据表会造成很慢。。所以请大神指点一下生成随机数的方法怎么写。。还有什么好的方式插入数据库,,实在不行我就用最原始的方法插入进去了

#3


如果是随机就可能产生重复,如果想不重复插入数据库就需要判断,判断就会导致效率降低!坐等大神来解决问题!

#4


验证码居然写死??

验证码要设计成动态的,比如一个请求页面,后台生成一个验证码,并且放到request中,前台输入错误,后台要重新生成验证码

#5


格式可以改吗?随机验证码+计数,保证不重复

#6


引用 4 楼 huxiweng 的回复:
验证码居然写死??

验证码要设计成动态的,比如一个请求页面,后台生成一个验证码,并且放到request中,前台输入错误,后台要重新生成验证码


这个不是验证码哈  不是页面登陆的验证码  只是需要这样一大串数据 不重复的  要AA000001到ZZ999999中的数据哈  

#7


引用 5 楼 zuoziji_lj 的回复:
格式可以改吗?随机验证码+计数,保证不重复


不能改诶。。0.0  必须要这个AA000001到ZZ999999

#8


我说错了。。。 不好意思各位  我的意思是AA100000到ZZ999999中  生成N个不重复的数字  不是全部生成哈  比如我一次值生成100个  这100个都是在这个区间里面的哈。。

#9


插入上万条记录,没多少,1分钟的执行时间都不要。

#10


引用 5 楼 zuoziji_lj 的回复:
格式可以改吗?随机验证码+计数,保证不重复


要不这个发我试试。。。感谢大神。。

#11


引用 10 楼 tangyongdi 的回复:
Quote: 引用 5 楼 zuoziji_lj 的回复:

格式可以改吗?随机验证码+计数,保证不重复


要不这个发我试试。。。感谢大神。。


String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random random = new Random();  
StringBuilder builder = new StringBuilder();
String[] str = new String[10000]; 
for(int i=0;i<10000;i++){
builder.setLength(0);
builder.append(s.charAt(random.nextInt(23))).append(s.charAt(random.nextInt(23))).append((random.nextInt(90)+10)*10000 + i);
str[i] = builder.toString();
}

#12


该回复于2014-04-02 12:28:26被版主删除

#13


为什么 不放到MAP里呢,无序不重复