用时间吧,Date date = new Date(); SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMddHHmmss"); String number = df1.format(date);//这里String取出的就是唯一的随机数,//截取8位和比较你自己解决。时间函数产生效率高,而且一般系统都需要时间列,一举两得、减少冗余
public String randomABC(int length) {// 随机字母 Random random = new Random(); String val = ""; for (int i = 0; i < length; i++) { int choice = random.nextInt(2) % 2 == 0 ? 97 : 97; // 取得65大写还是97小写 val += (char) (choice + random.nextInt(26)); } return val; } public String random123(int length) {// 随机数字 Random random = new Random(); String val = ""; for (int i = 0; i < length; i++) { val += random.nextInt(10) + ""; } return val; } 参数就是你要生成多少位的
SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMddHHmmss");
String number = df1.format(date);//这里String取出的就是唯一的随机数,//截取8位和比较你自己解决。时间函数产生效率高,而且一般系统都需要时间列,一举两得、减少冗余
Random random = new Random();
String val = "";
for (int i = 0; i < length; i++) {
int choice = random.nextInt(2) % 2 == 0 ? 97 : 97; // 取得65大写还是97小写
val += (char) (choice + random.nextInt(26));
}
return val;
} public String random123(int length) {// 随机数字
Random random = new Random();
String val = "";
for (int i = 0; i < length; i++) { val += random.nextInt(10) + "";
}
return val;
}
参数就是你要生成多少位的
SimpleDateFormat df1 = new SimpleDateFormat("ddHHmmss");
String number = df1.format(date);//这里String取出的就是唯一的随机数,
上面的方法肯定有问题,程序运行多快绝对的<ms级别,时间间隔<ms级别的时候,肯定出现主键重复。