这篇文章主要介绍了java生成自增编号数字的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
java生成自增编号数字
最近有业务需求,编号自增。
1、查询数据最大编号,该字段为字符串
SELECT max(no_value+0) FROM `jm_xx`
2、编号+1,递增后按格式补齐
public String getOldNum(){
String oldNum ="00000001";
String maxOldNum = jmDocMapper.findMaxOldNum();
if(null !=maxOldNum){
int i = Integer.parseInt(maxOldNum)+1;
//%nd 输出的整型宽度至少为n位,右对齐,%8d即宽度至少为8位,位数大于8则输出实际位数,0表示用0补齐
oldNum = String.format("%08d", i);
}
return oldNum;
}
java生成一定规则递增编号
项目需求中有时需要生成一定规则递增编号。
例如生成设备编号:设备类型+五位编号(从1开始,不够前补0),也就是SYXH000001/SYXH00002/SDOI00001类似这样。
那么如何处理000001自增1变为000002呢?
实现代码:
package com.lyf.test;
public class Test2 {
/**
* 生成规则设备编号:设备类型+五位编号(从1开始,不够前补0)
*
* @param equipmentType
* 设备类型
* @param equipmentNo
* 最新设备编号
* @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("生成设备编号:" + equipmentNo);
}
}
运行结果:
生成设备编号:SYXH00033
从上面代码中可以看到,首先我们默认了一个初始设备编号,当传入方法的最新设备编号为null或是空时将使用。
如果传入了数据库中最新设备编号,将首先使用Integer的parseInt()方法返回十进制整数,这样就可以对其自增1。
最后通过String的format()方法进行字符串格式化返回就可以了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:java生成自增编号数字的问题
基础教程推荐
猜你喜欢
- java基础知识之FileInputStream流的使用 2023-08-11
- Java实现查找文件和替换文件内容 2023-04-06
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- Java文件管理操作的知识点整理 2023-05-19
- Java并发编程进阶之线程控制篇 2023-03-07
- Java数据结构之对象比较详解 2023-03-07
- Java实现线程插队的示例代码 2022-09-03
- java实现多人聊天系统 2023-05-19
- springboot自定义starter方法及注解实例 2023-03-31