项目中的问题..请大家给点思路..谢谢~!
需要往数据库里插入100个手机号码.从139010*****到139910*****这两号码段之间 随机产生不重复的手机号码 插入数据库以供使用...请大家给点具体思路 或者核心代码
------解决方案--------------------是什么数据库?如果是Oracle的话我倒是会写PL/SQL
------解决方案--------------------先在程序里生成这100个不重复的号码,一次性插入好了,反正你是拿来测试用的
------解决方案--------------------用java程序生成,然后一次性插入即可
------解决方案--------------------随机码。。恩~原理可以参考吓验证码数字生成
------解决方案--------------------好像不用非要随机才行吧,只要一个FOR循环,STEP 个50或100的,就可以了。
------解决方案--------------------可以肯定这100个手机号码不是连续的,有间断,
首先把这100个号码读入到内存中,再转入到list中,通过循环,在循环中通过Statement的对象的addBatch方法一并加入,再execteBatch就行了,事务肯定要加咯
------解决方案--------------------http://community.csdn.net/IndexPage/SmartQuestion.aspx#bespecific
------解决方案--------------------很难吗?怎么上来就要代码
------解决方案--------------------写一循环,让其按照顺序查入到数据库中,从数据库取的时候按照newid().
------解决方案--------------------就是随机产生5位数嘛
------解决方案--------------------随机产生数,放入集合中(hashset防止重复),然后遍历集合把它们插入到数据库
------解决方案--------------------随机生成1到99999的100个不重复整数,然后从13901000000到13991099999进行循环,选出对应的号码插入数据库即可
------解决方案--------------------写了一段代码供参考:
package net.oicp.sunflowerbbs;
import java.util.Random;
public class GenRandomNums {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array=new int[100000];
for(int i=0;i <array.length;i++)
array[i]=i+1;
Random rnd = new Random();
for(int i=0;i <array.length/2;i++)
{
int randnum=rnd.nextInt(100000);
int tmp=array[randnum];
array[randnum]=array[99999-randnum];
array[99999-randnum]=tmp;
}
//从任意位置连续取100个数即可
for(int j=0;j <100;j++)
System.out.println(String.format( "13901%05d ", array[j]));
}
}
------解决方案--------------------不如 全部插入 随机查出100个 select * from
(
select * from 表名
order by dbms_random.value
)
where rownum <= 100
;