java防止序列号重复
2023-01-10阅读(442)
问:java里往数据库里加数据 之后自动生成一个序号 唯一不重复 生成规则为 数据库中某一字段+00001
- 答:两种解决方案 ,其实有点类似于ID
1、在数据库加一列,在的程序里写自己写方法处理,然后插入
2、在数据里写函数,写一个触发器
问:java自动生成‘日期0001’顺序号 如‘201404170001’,生成下一个时不重复
- 答:如果小项目的话,弄个static 的字段分别保存日期和序号就行了。每次取之前判一下日期是否变化。 记得把方法加锁,避免并发操作就好。
如果项目大,多server的情况,就需要通过数据库管理了。 - 答:public static void main(String[] args) {
Calendar cal = new GregorianCalendar();
for (int i = 0; i < 2; i++) {
cal.set(Calendar.MILLISECOND, cal.get(Calendar.MILLISECOND) + 1);
System.out.println(toDateString(cal));
}
}
public static String toDateString(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int msec = calendar.get(Calendar.MILLISECOND);
return "" + year + month + day + msec;
}
问:如何在JAVA中随机产生10位不可重复字串的方法
- 答:/**
* 生成不重复随机字符串包括字母数字
*
* @param len
* @return
*/
public static String generateRandomStr(int len) {
//字符源,可以根据需要删减
String generateSource = "0123456789abcdefghigklmnopqrstuvwxyz";
String rtnStr = "";
for (int i = 0; i < len; i++) {
//循环随机获得当次字符,并移走选出的字符
String nowStr = String.valueOf(generateSource.charAt((int) Math.floor(Math.random() * generateSource.length())));
rtnStr += nowStr;
generateSource = generateSource.replaceAll(nowStr, "");
}
return rtnStr;
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(generateRandomStr(8));
}
} - 答:这不很简单,给你个csdn博客的页面一看,好几种方法:
java 生成 序列号 随机字符串 - 答:将字母存入集合
产生集合大小的随机数,取出该随机数对应下标的字母,从集合中去除该字母
循环十次拼接字母打印出来