java流水號,java流水號生成規則,超過長度用字母

本文目錄一覽:

java怎麼產生無重複的流水號!

希望對你有幫助!獲取當前時間毫秒數,如果是單線程的話,一定無重複

一般這樣在多線程並發中取到相同毫秒的概率都幾乎為0,基本可以保證無重複

java 生成流水號為什麼不使用sequence

sequence

是數據庫級別的流水號

java生成流水號一般都用uuid生成32位的ID值,確保不會重複。

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怎樣自動生成流水號

方法一:

   不用數據庫的話弄個 static個變量,自己設置個synchronized

   示例:

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

public class PrimaryGenerater {

    private static final String SERIAL_NUMBER = “XXXX”; // 流水號格式

    private static PrimaryGenerater primaryGenerater = null;

    private PrimaryGenerater() {

    }

    /**

     * 取得PrimaryGenerater的單例實現

     *

     * @return

     */

    public static PrimaryGenerater getInstance() {

        if (primaryGenerater == null) {

            synchronized (PrimaryGenerater.class) {

                if (primaryGenerater == null) {

                    primaryGenerater = new PrimaryGenerater();

                }

            }

        }

        return primaryGenerater;

    }

    /**

     * 生成下一個編號

     */

    public synchronized String generaterNextNumber(String sno) {

        String id = null;

        Date date = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat(“yyyyMMdd”);

        if (sno == null) {

            id = formatter.format(date) + “0001”;

        } else {

            int count = SERIAL_NUMBER.length();

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i  count; i++) {

                sb.append(“0”);

            }

            DecimalFormat df = new DecimalFormat(“0000”);

            id = formatter.format(date)

                    + df.format(1 + Integer.parseInt(sno.substring(8, 12)));

        }

        return id;

    }

}

方法二:

 可以在數據庫新建序列,再新建一個存儲過程控制序列,返回序列值,比如sqlserver用identity,oracle用序列,存儲過程可以加鎖,當達到999999的時候重置序列,通過代碼調用存儲過程獲得返回值。

2、全局變量。通過方法獲取下一個值,方法同步。

java怎麼自動生成訂單流水號

看想要哪種類型的流水號

只要數字的,可以用

系統毫秒+用戶id

生成

流水號,這能保證唯一(同一個用戶同一毫秒只能發其一次流水號申請)

如果可以帶字母的,就用java

自帶的

生成uuid

類,生成一個

原創文章,作者:MKYM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137145.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MKYM的頭像MKYM
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • 解析URI編碼規則

    URI(統一資源標識符)是用來標識互聯網上資源的字符串文本標識符,是訪問互聯網資源的地址。在將URI傳送到服務器或瀏覽器時,需要進行特定編碼處理,這個編碼方式就是URI編碼規則。 …

    編程 2025-04-28
  • Python編寫規則用法介紹

    Python作為一種廣泛使用的高級編程語言,其編寫規則的規範性對於提高代碼可讀性、美觀度以及方便調試、維護至關重要。本文將從命名規則、注釋規則、代碼縮進等多個方面進行詳細的闡述,希…

    編程 2025-04-28
  • Python列表長度怎麼算

    本文將從以下多個方面闡述Python列表長度的計算方式,包括len()函數、循環遍歷、切片、列表推導式等。 一、使用len()函數計算列表長度 計算列表長度最常見的方法是使用Pyt…

    編程 2025-04-28
  • Python縮進規則用法介紹

    本文將從多個方面對Python的縮進規則進行詳細的闡述。 一、規則解答 Python中縮進是語法的一部分,它決定了程序的結構和邏輯。Python縮進規則要求同一層級的代碼必須保持相…

    編程 2025-04-28
  • Python queue長度用法介紹

    本文將從多個方面詳細闡述Python queue長度問題,包括隊列長度的定義、如何獲取隊列長度、隊列滿時如何處理以及常見的隊列長度問題。同時,本文也會提供完整的Python代碼示例…

    編程 2025-04-28
  • Python如何輸出字符串的長度

    Python是一種十分強大的編程語言,其內置函數和方法的使用可以使得代碼變得簡單而又直觀。本文將從多個方面詳細闡述Python如何輸出字符串的長度。 一、使用len()函數 Pyt…

    編程 2025-04-27
  • Python獲取單鏈表長度的方法

    本文將從以下幾個方面詳細闡述Python中獲取單鏈表長度的方法,並為每個方面提供詳細的代碼示例。 一、定義鏈表 在Python中,我們可以使用類來定義鏈表。具體實現如下: clas…

    編程 2025-04-27
  • Python計算向量長度

    Python提供了許多內置函數、模塊和方法來計算向量長度。本文將從多個方面對Python計算向量長度進行詳細闡述。 一、使用Math模塊計算向量長度 Python中提供了一個Mat…

    編程 2025-04-27
  • Python轉義字符算不算長度?

    Python是一門易學易用的編程語言,它提供了許多強大的功能和工具,使得開發人員可以快速、高效地創建各種類型的應用程序。其中,轉義字符作為一種特殊的字符,可以用於表示一些特殊的字符…

    編程 2025-04-27
  • list長度

    一、長度對內存和性能的影響 在Python中,list是一種基本的數據類型,它常常被用於存儲數據。然而,當list的長度不斷增加時,它對於內存和性能的影響也逐漸加重。 在處理大量數…

    編程 2025-04-25

發表回復

登錄後才能評論