现在有这样一个要求,生成注水,最大为999999,6位的长度,
开始时,是000001,以后逐个递增。一天内保证唯一,如果大于最大值,则新开一个流水。
要求在高并发下,操作,获取,
开始时,是000001,以后逐个递增。一天内保证唯一,如果大于最大值,则新开一个流水。
要求在高并发下,操作,获取,
解决方案 »
- spring向struts注入实例变量是线程安全的吗?
- 请问如何在ant中指定程序所需要的文件?
- 最近在做一在线购物系统,用struts+hibernate做的~遇到一个问题`望能够帮忙~!
- EJB在Rebuild时产生的错误,谁能帮忙解决一下!
- 請高人指路
- 为什么用jboss+ejb+sybase开发了一个计算模块总出现死锁现象,高分请教
- upload一个文件,如何在servlet中得到文件名?
- JBuilder8编辑文件时的光标对齐问题!
- 如何在EJB层实现文件IO操作?
- 【求助】在域名绑定tomcat后,springmvc项目出错,求大佬帮帮忙
- Spring web.xml中遇到了一个诡异问题
- 跪求java快排代码,要带注释的
-- Create sequence
create sequence SEQ_TEST
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
取流水号用这个SQL即可:
select TO_CHAR(MOD(SEQ_TEST.Nextval,1000000), '000000') CurrNo from dual;
private static int counter = 1; public static void main(String[] args) {
long sec = 0;
while (sec++<9999999)
System.out.println(getSequence());
} synchronized public static String getSequence(){
if (++counter>999999) counter=1;
return String.format("%06d", counter);
}
}
private static int counter = 0;
synchronized public static String getSequence(){
if (++counter>999999) counter=1;
}
这样可行