java生成自增編號(hào)數(shù)字的問(wèn)題
java生成自增編號(hào)數(shù)字
最近有業(yè)務(wù)需求,編號(hào)自增。
1、查詢(xún)數(shù)據(jù)最大編號(hào),該字段為字符串
SELECT max(no_value+0) FROM `jm_xx`
2、編號(hào)+1,遞增后按格式補(bǔ)齊
public String getOldNum(){
? ? ? ? String oldNum ="00000001";
? ? ? ? String maxOldNum = jmDocMapper.findMaxOldNum();
? ? ? ? if(null !=maxOldNum){
? ? ? ? ? ? int i = Integer.parseInt(maxOldNum)+1;
? ? ? ? ? ? //%nd 輸出的整型寬度至少為n位,右對(duì)齊,%8d即寬度至少為8位,位數(shù)大于8則輸出實(shí)際位數(shù),0表示用0補(bǔ)齊
? ? ? ? ? ? oldNum = String.format("%08d", i);
? ? ? ? }
? ? return oldNum;
}java生成一定規(guī)則遞增編號(hào)
項(xiàng)目需求中有時(shí)需要生成一定規(guī)則遞增編號(hào)。
例如生成設(shè)備編號(hào):設(shè)備類(lèi)型+五位編號(hào)(從1開(kāi)始,不夠前補(bǔ)0),也就是SYXH000001/SYXH00002/SDOI00001類(lèi)似這樣。
那么如何處理000001自增1變?yōu)?00002呢?
實(shí)現(xiàn)代碼:
package com.lyf.test;
public class Test2 {
?? ?
?? ?/**
?? ? * 生成規(guī)則設(shè)備編號(hào):設(shè)備類(lèi)型+五位編號(hào)(從1開(kāi)始,不夠前補(bǔ)0)
?? ? *?
?? ? * @param equipmentType
?? ? * ?? ??? ??? ??? ?設(shè)備類(lèi)型
?? ? * @param equipmentNo
?? ? * ?? ??? ??? ??? ?最新設(shè)備編號(hào)
?? ? * @return
?? ? */
?? ?public static String getNewEquipmentNo(String equipmentType, String equipmentNo){
?? ??? ?String newEquipmentNo = equipmentType + "00001";
?? ??? ?
?? ??? ?if(equipmentNo != null && !equipmentNo.isEmpty()){
?? ??? ??? ?int no = Integer.parseInt(equipmentNo);
?? ??? ??? ?int newEquipment = ++no;
?? ??? ??? ?newEquipmentNo = String.format(equipmentType + "%05d", newEquipment);
?? ??? ?}
?? ??? ?
?? ??? ?return newEquipmentNo;
?? ?}
?? ?public static void main(String[] args) {
?? ??? ?String equipmentNo = Test2.getNewEquipmentNo("SYXH", "00032");
?? ??? ?System.out.println("生成設(shè)備編號(hào):" + equipmentNo);
?? ?}
}運(yùn)行結(jié)果:
生成設(shè)備編號(hào):SYXH00033
從上面代碼中可以看到,首先我們默認(rèn)了一個(gè)初始設(shè)備編號(hào),當(dāng)傳入方法的最新設(shè)備編號(hào)為null或是空時(shí)將使用。
如果傳入了數(shù)據(jù)庫(kù)中最新設(shè)備編號(hào),將首先使用Integer的parseInt()方法返回十進(jìn)制整數(shù),這樣就可以對(duì)其自增1。
最后通過(guò)String的format()方法進(jìn)行字符串格式化返回就可以了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
java監(jiān)聽(tīng)器實(shí)現(xiàn)在線(xiàn)人數(shù)統(tǒng)計(jì)
Spring Boot統(tǒng)一異常處理最佳實(shí)踐(拓展篇)
java 從int數(shù)組中獲取最大數(shù)的方法
SpringBoot快速通關(guān)自動(dòng)配置應(yīng)用
Spark學(xué)習(xí)筆記 (二)Spark2.3 HA集群的分布式安裝圖文詳解

