欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java之String類型的有序Id批量生成器詳解

 更新時間:2025年04月03日 09:30:10   作者:年月日朝朝暮暮  
這篇文章主要介紹了Java之String類型的有序Id批量生成器,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Java String類型的有序Id批量生成器

做項目的時候免不了對數(shù)據(jù)庫進(jìn)行批量操作,比如說批量增加一批產(chǎn)品,批量增加一批工號。而這時候我們對于所增加的對象的自編號自然是不可能從頁面由客戶自己對一個個自編號進(jìn)行手動輸入,這樣當(dāng)所需要的編號達(dá)到一定數(shù)值之后就會造成極大的負(fù)擔(dān)。但是將所需要增加的數(shù)量傳過來由工具自動生成就很棒了。

以下是一個Id批量生成器

有需要的朋友直接拿去用就可以了:

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class IdGenerator {
	private Long currentdbidscount;
	private List<String> ids = new ArrayList<String>();
	private String idpre;
	private String yearstr;
	private String idafter;

	public IdGenerator() {
	}

	public Long getCurrentdbidscount() {
		return currentdbidscount;
	}

	public void setCurrentdbidscount(Long currentdbidscount) {
		this.currentdbidscount = currentdbidscount;
		if (null == this.ids) {
			this.ids = new ArrayList<String>();
		}
	}

	public List<String> getIds() {
		return ids;
	}

	public void setIds(List<String> ids) {
		this.ids = ids;
	}

	public String getIdpre() {
		return idpre;
	}

	public void setIdpre(String idpre) {
		this.idpre = idpre;
	}

	public String getYearstr() {
		return yearstr;
	}

	public void setYearstr(String yearstr) {
		this.yearstr = yearstr;
	}

	public String getIdafter() {
		return idafter;
	}

	public void setIdafter(String idafter) {
		this.idafter = idafter;
	}

	public List<String> initIds(Long ocounts) {
		for (int i = 0; i < ocounts; i++) {
			this.ids.add(getIdPre() + yearStr() + getIdAfter(i));
		}
		return this.ids;
	}

	//
	private String getIdAfter(int addcount) {
		// 默認(rèn)生成 xx1700001
		//這里是數(shù)字部分長度
		int goallength = 5;
		//獲取數(shù)據(jù)庫縱向+1次循環(huán)(addcount)
		int count = this.currentdbidscount.intValue() + 1 + addcount;
		StringBuilder sBuilder = new StringBuilder("");
		//計算與五位數(shù)的差值?
		int length = goallength - new String(count + "").length();
		for (int i = 0; i < length; i++) {
			sBuilder.append("0");
		}
		sBuilder.append(count + "");
		return sBuilder.toString();
	}

	private String getIdPre() {
		// idpre==null?this.idpre="xx":this.idpre=idpre;
		this.idpre = "Id-Hello-";
		return this.idpre;
	}

	private String yearStr() {
		Date currentdate = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String yearstr = sdf.format(currentdate).substring(2, 4);
		return yearstr;
	}

	public void clear() {
		this.ids = null;
	}

	@Override
	public String toString() {
		return "IdGenerator [ids=" + ids + "]";
	}
}

下面來看看我的測試效果

建議在哪里調(diào)用這個就把它寫成一個內(nèi)部類 。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis-plus?如何使用雪花算法ID生成策略

    mybatis-plus?如何使用雪花算法ID生成策略

    這篇文章主要介紹了mybatis-plus如何使用雪花算法ID生成策略,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中反射reflect的基礎(chǔ)知識講解

    Java中反射reflect的基礎(chǔ)知識講解

    這篇文章主要介紹了Java中反射reflect的基礎(chǔ)知識講解,Java中的反射,它算是Java當(dāng)中非常底層的一個技術(shù),平時我們我們用得不多,實際上它也的確非常復(fù)雜同時也難以理解,但是涉及到底層的東西Java都給我們封裝好了,我們直接拿來調(diào)用即可,需要的朋友可以參考下
    2023-10-10
  • 面試必時必問的JVM 類加載機(jī)制詳解

    面試必時必問的JVM 類加載機(jī)制詳解

    這篇文章主要介紹了一文讀懂Jvm類加載機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-08-08
  • Spring boot中@Conditional和spring boot的自動配置實例詳解

    Spring boot中@Conditional和spring boot的自動配置實例詳解

    本文通過實例給大家介紹了Spring boot中@Conditional和spring boot的自動配置,需要的朋友可以參考下
    2018-05-05
  • java并發(fā)訪問重復(fù)請求過濾問題

    java并發(fā)訪問重復(fù)請求過濾問題

    本篇文章給大家分享了關(guān)于java并發(fā)訪問重復(fù)請求過濾的相關(guān)問題以及解決方法,對此有需要的朋友參考學(xué)習(xí)下。
    2018-05-05
  • java單例模式實現(xiàn)的方法

    java單例模式實現(xiàn)的方法

    這篇文章主要介紹了如何在JAVA中實現(xiàn)單例模式,文中代碼簡單易懂,供大家參考學(xué)習(xí),感興趣的小伙伴可以了解下
    2020-06-06
  • java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段

    java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段

    這篇文章主要為大家詳細(xì)介紹了java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java四種線程池的使用詳解

    Java四種線程池的使用詳解

    本篇文章主要介紹了Java四種線程池的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Apache DolphinScheduler完全設(shè)置東八區(qū)時區(qū)

    Apache DolphinScheduler完全設(shè)置東八區(qū)時區(qū)

    這篇文章主要為大家介紹了Apache DolphinScheduler完全設(shè)置東八區(qū)配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Java的RocketMQ之消息存儲和查詢原理詳解

    Java的RocketMQ之消息存儲和查詢原理詳解

    這篇文章主要介紹了Java的RocketMQ之消息存儲和查詢原理詳解,一臺Broker服務(wù)器只有一個CommitLog文件(組),RocketMQ會將所有主題的消息存儲在同一個文件中,這個文件中就存儲著一條條Message,每條Message都會按照順序?qū)懭?需要的朋友可以參考下
    2024-01-01

最新評論