java產生條碼號的源碼

來源:互聯網
上載者:User

標籤:java   產生條碼號   

在實際業務中會有很多通過和流水號拼接,形成一個使用者唯一id的標識。由於本次用的是和oracle資料庫結合,所以會用到oracle的序列,為了示範方便,所以把動態得到的序號寫成了靜態了。具體源碼如下:

package com.evan.string;import java.text.SimpleDateFormat;public class BarcodeGenerateTest {    public static void main(String[] args) {        String dept = "0001";//分院id號        int max = 202;//當前序列的下一個序列        SimpleDateFormat sd = new SimpleDateFormat("yyMMdd");        String day = sd.format(new java.util.Date());        String spk = String.format("%05d", max);        //條碼號建置規則: 分院id號+999+當前日期+當前序列的下一個序列        String barcode = dept + "999" + day + spk;        System.out.println(barcode);//000199915050700202        /**前面補零 將條碼號強制補齊為十八位,在Excel匯入時,可能會遇到,因為excel條碼顯示為000199915050700202        但是傳遞到後台後就變成199915050700202,三個零自動就沒了。可以用強制補零來解決。*/        String sglCheckId = "123456789";        String result = String.format("%018d", Integer.valueOf(sglCheckId));        System.out.println(result);    }}

但是這樣做可能會有一個問題,就是在同一天當序列增長到最大值時,序列會從最小值重新開始,這樣會導致條碼重複。
解決辦法目前可能有兩個個:
1、要求業務部門,當前最多可匯入10萬條資料 。(目前真是這樣做的)
2、將條碼號的建置規則改變,增加兩個數量級。

java產生條碼號的源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.