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

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ù)庫(kù)進(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ù)字部分長(zhǎng)度
		int goallength = 5;
		//獲取數(shù)據(jù)庫(kù)縱向+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)文章

最新評(píng)論