问题描述
项目需求,现在需要随机产生一个十位数的号码,并且要保证该号码在数据中不存在,我现在的做法就是当产生一个随机数后,立即去数据库中进行查询是否存在,如果不存在则添加,但是感觉这样做效率较低,不知道大家有什么好的思路?
解决方案
解决方案二:
随机的10位数,还得不重复。不重复的话,可以考虑序列,是个方法不重复的想到了Date的毫秒数和UUID是不重复的但是还是没有想到解决的办法Calendarnow=Calendar.getInstance();now.add(Calendar.YEAR,-44);System.out.println(now.getTimeInMillis());29846584462
仅获取这一年的毫秒数,也超过10位了
解决方案三:
楼上的可以,用一个规则生成10位数,并且保证这个数是唯一的,这样就不需要考虑在数据库中是否存在了,基本不同规则的数基本不可能重复
解决方案四:
楼主每次进数据库查询的话效率肯定是低的,有没有考虑先将数据库里的十位数数字先进行一次查询,返回该数据的数组,然后在服务器用一个dowhile,循环外给一个计数器intcount等于0,do{生成随机数,for(遍历已有10位数组){if随机数等于已有10位数count++}}while(count==0插入随机数)这样就只用在插入前只链接一次数据库
解决方案五:
不好意思没说清楚,count放在do内,for循环外
时间: 2024-09-29 11:51:06