⑴ java自動生成進貨編碼
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 自動生產編號
* @author
*chengeng
*/
public class AutoNum {
/**
*
* 在用此類時,必須先明確自己模塊編號的開頭
* @param start編號開頭,
* @param num從資料庫查詢出的最大編號
* @return
*/
public String getNum(String start,String num){
String n=num.substring(0,3);
if(!n.equals(start)){
System.out.println("編號的開頭與從資料庫取得的編號開頭不相同");
return "";
}
String strDate="";//流水號時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
//格式化當前時間,並按字元'-'分割
String[] sd=sdf.format(date).split("-");
//截取編號中的日期
String time=num.substring(3,11).toString();
for(int i=0;i<sd.length;i++){
strDate+=sd[i];
}
//如果當天或者表中沒有記錄,返回當天第一條記錄
if(!time.equals(strDate)||num.equals("")){
return start+strDate+"0001";
}
// 截取編號最後的流水號
String end=num.substring(11, 15);
String s2="";
int lg=Integer.parseInt(end);
//對流水號結尾的四位數字進行判斷,以便增加
if(lg>0&&lg<9){
s2="000"+(lg+1);
}else if(lg>=9&&lg<99){
s2="00"+(lg+1);
}else if(lg>=99&&lg<999){
s2="0"+(lg+1);
}else if(lg>=999&&lg<9999){
s2=""+(lg+1);
}
//返回自動生成後的流水號
return start+=strDate+s2;
}
}
⑵ java怎麼產生無重復的流水號!
可以使用java.util.UUID.randomUUID().toString(); 產生一個不會重復的流水號。也就是UUID。
⑶ java 生成流水號為什麼不使用sequence
sequence
是資料庫級別的流水號
java生成流水號一般都用uuid生成32位的ID值,確保不會重復。
⑷ java怎麼自動生成訂單流水號
看想要哪種類型的流水號
只要數字的,可以用
系統毫秒+用戶id
生成
流水號,這能保證唯一(同一個用戶同一毫秒只能發其一次流水號申請)
如果可以帶字母的,就用java
自帶的
生成uuid
類,生成一個
⑸ 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生成流水號 200+當前時間+0001 200+當前時間+0002 到了每年的1月1號流水號重新從0001開始
在資料庫里創建一個序列,每次到資料庫里取一次值再拼成流水號。每年一月把序列重置為0
⑺ java 生6位流水號
你是要處理並發問題,
1.處理類中使用線程鎖
2.在處理之前使用 select xxx from aaa for update 這樣的SQL進行鎖表,
⑻ java生成流水號
先生成隨機數你用set add一下 返回 true再用就可以保證不重復了
⑼ 怎樣用java生成固定14位的隨機流水號,要唯一 解決方案
sequence
是資料庫級別的流水號
java生成流水號一般都用uuid生成32位的ID值,確保不會重復。
⑽ 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;
}
}