最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

以下是一個(gè)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("");
		//計(jì)算與五位數(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 + "]";
	}
}

下面來看看我的測(cè)試效果

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

總結(jié)

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

相關(guān)文章

  • Java設(shè)計(jì)模式中的橋接模式

    Java設(shè)計(jì)模式中的橋接模式

    這篇文章主要介紹了Java設(shè)計(jì)模式中的橋接模式,其是一種結(jié)構(gòu)型設(shè)計(jì)模式,是指將實(shí)現(xiàn)與抽象放在兩個(gè)不同的類層次中,使兩個(gè)層次可以獨(dú)立改變
    2022-07-07
  • 使用eclipse創(chuàng)建java項(xiàng)目的方法

    使用eclipse創(chuàng)建java項(xiàng)目的方法

    這篇文章主要為大家詳細(xì)介紹了使用eclipse創(chuàng)建java項(xiàng)目的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • java 獲取已知文件擴(kuò)展名的代碼

    java 獲取已知文件擴(kuò)展名的代碼

    java 編寫程序獲取已知文件的擴(kuò)展名. 注意: abc.txt的擴(kuò)展名是txt, abc.java.txt的擴(kuò)展名也是txt.,需要的朋友可以參考下
    2017-02-02
  • Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用講解

    Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用講解

    這篇文章主要介紹了Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • java無鎖hashmap原理與實(shí)現(xiàn)詳解

    java無鎖hashmap原理與實(shí)現(xiàn)詳解

    本文主要介紹了java無鎖hashmap原理與實(shí)現(xiàn),大家參考使用吧
    2014-01-01
  • Java中常用數(shù)據(jù)類型的輸入輸出詳解

    Java中常用數(shù)據(jù)類型的輸入輸出詳解

    本文主要介紹了Java中幾個(gè)常用的數(shù)據(jù)類型是如何輸入和輸出的,例如:Char型、int型、double型、數(shù)組、字符串等,對(duì)我們學(xué)習(xí)java有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • SpringBoot中使用Redis的完整實(shí)例

    SpringBoot中使用Redis的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于SpringBoot中使用Redis的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳細(xì)講解Java抽象類示例

    詳細(xì)講解Java抽象類示例

    這篇文章主要介紹了 Java抽象類示例,抽象類通常用于定義一些公共的方法和屬性,但是這些方法沒有具體的實(shí)現(xiàn),需要的朋友可以參考下
    2023-05-05
  • java異步導(dǎo)出的實(shí)現(xiàn)過程

    java異步導(dǎo)出的實(shí)現(xiàn)過程

    這篇文章主要介紹了java異步導(dǎo)出的實(shí)現(xiàn)過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • 使用Javacsv.jar的jar包操作csv文件的方法

    使用Javacsv.jar的jar包操作csv文件的方法

    使用javacsv的jar包很方便的可以操作csv文件。下面通過本教程給大家介紹使用javacsv.jar操作csv文件的方法,感興趣的朋友一起看下吧
    2016-08-08

最新評(píng)論

都安| 龙南县| 云林县| 永泰县| 文山县| 繁昌县| 桃江县| 彰化县| 双鸭山市| 昭觉县| 隆子县| 邢台市| 原阳县| 双牌县| 永定县| 达尔| 余庆县| 邓州市| 武义县| 嘉峪关市| 花莲县| 株洲市| 历史| 长寿区| 贡觉县| 金坛市| 兖州市| 阿拉尔市| 永春县| 简阳市| 响水县| 利辛县| 平南县| 昌宁县| 务川| 裕民县| 荥经县| 阳江市| 革吉县| 深水埗区| 巫溪县|