java生成流水號
① java實現自動生成流水號的方法
public
static
String
getOrderNo(){
long
No
=
0;
SimpleDateFormat
sdf
=
new
SimpleDateFormat("yyyyMMdd");
String
nowdate
=
sdf.format(new
Date());
No
=
Long.parseLong(nowdate)*1000;//這里如果一天訂單多的話可以用一萬或更大
No+=getNo();
return
getUserId+No;
}
public
static
int
getNo(){//返回當天的訂單數+1
return
001;
}
public
static
String
getUserId(){
return
"123";
}
用System.out.print(getOrderNo());測試得到:12320060307001
一般訂單號用這樣還不錯吧。呵呵
② java 生6位流水號
你是要處理並發問題,
1.處理類中使用線程鎖
2.在處理之前使用 select xxx from aaa for update 這樣的SQL進行鎖表,
③ java怎麼產生無重復的流水號!
希望對你有幫助!獲取當前時間毫秒數,如果是單線程的話,一定無重復
一般這樣在多線程並發中取到相同毫秒的概率都幾乎為0,基本可以保證無重復
④ java 生成流水號為什麼不使用sequence
sequence
是資料庫級別的流水號
java生成流水號一般都用uuid生成32位的ID值,確保不會重復。
⑤ java生成流水號 200+當前時間+0001 200+當前時間+0002 到了每年的1月1號流水號重新從0001開始
在資料庫里創建一個序列,每次到資料庫里取一次值再拼成流水號。每年一月把序列重置為0
⑥ java怎麼生成一個一天內不會重復的20位流水號
我為您寫了 一遍,望採納。
packageZxing;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.Random;
/**
*
*開發公司:SOJSON在線工具<p>
*版權所有:©www.sojson.com
*博客地址:http://www.sojson.com/blog/
*<p>
*
*Demo
*
*<p>
*
*區分責任人日期說明<br/>
*創建周柏成2017年4月11日09:43<br/>
*
*@authorzhou-cheng
*@[email protected]
*@version1.0,2017年4月11日09:43<br/>
*
*/
publicclassDemo{
publicstaticvoidmain(String[]args){
//格式化當前時間
SimpleDateFormatsfDate=newSimpleDateFormat("yyyyMMddHHmmssSSS");
StringstrDate=sfDate.format(newDate());
//得到17位時間如:20170411094039080
System.out.println("時間17位:"+strDate);
//為了防止高並發重復,再獲取3個隨機數
Stringrandom=getRandom620(3);
//最後得到20位訂單編號。
System.out.println("訂單號20位:"+strDate+random);
}
/**
*獲取6-10的隨機位數數字
*@paramlength想要生成的長度
*@returnresult
*/
(Integerlength){
Stringresult="";
Randomrand=newRandom();
intn=20;
if(null!=length&&length>0){
n=length;
}
intrandInt=0;
for(inti=0;i<n;i++){
randInt=rand.nextInt(10);
result+=randInt;
}
returnresult;
}
}
⑦ java怎麼自動生成訂單流水號
看想要哪種類型的流水號
只要數字的,可以用
系統毫秒+用戶id
生成
流水號,這能保證唯一(同一個用戶同一毫秒只能發其一次流水號申請)
如果可以帶字母的,就用java
自帶的
生成uuid
類,生成一個