java生成自增编号数字的问题教程方法

喜欢ヅ旅行 2024-03-23 09:59 170阅读 0赞

java生成自增编号数字
最近有业务需求,编号自增。

1、查询数据最大编号,该字段为字符串

  1. SELECT max(no_value+0) FROM `jm_xx`

2、编号+1,递增后按格式补齐

  1. public String getOldNum(){
  2. String oldNum ="00000001";
  3. String maxOldNum = jmDocMapper.findMaxOldNum();
  4. if(null !=maxOldNum){
  5. int i = Integer.parseInt(maxOldNum)+1;

%nd 输出的整型宽度至少为n位,右对齐,%8d即宽度至少为8位,位数大于8则输出实际位数,0表示用0补齐

  1. oldNum = String.format("%08d", i);
  2. }
  3. return oldNum;
  4. }

java生成一定规则递增编号
项目需求中有时需要生成一定规则递增编号。

例如生成设备编号:设备类型+五位编号(从1开始,不够前补0),也就是SYXH000001/SYXH00002/SDOI00001类似这样。

那么如何处理000001自增1变为000002呢?

实现代码:

  1. package com.lyf.test;
  2. public class Test2 {
  3. /**
  4. * 生成规则设备编号:设备类型+五位编号(从1开始,不够前补0)
  5. *
  6. * @param equipmentType
  7. * 设备类型
  8. * @param equipmentNo
  9. * 最新设备编号
  10. * @return
  11. */
  12. public static String getNewEquipmentNo(String equipmentType, String equipmentNo){
  13. String newEquipmentNo = equipmentType + "00001";
  14. if(equipmentNo != null && !equipmentNo.isEmpty()){
  15. int no = Integer.parseInt(equipmentNo);
  16. int newEquipment = ++no;
  17. newEquipmentNo = String.format(equipmentType + "%05d", newEquipment);
  18. }
  19. return newEquipmentNo;
  20. }
  21. public static void main(String[] args) {
  22. String equipmentNo = Test2.getNewEquipmentNo("SYXH", "00032");
  23. System.out.println("生成设备编号:" + equipmentNo);
  24. }
  25. }

运行结果:

生成设备编号:SYXH00033

从上面代码中可以看到,首先我们默认了一个初始设备编号,当传入方法的最新设备编号为null或是空时将使用。

如果传入了数据库中最新设备编号,将首先使用Integer的parseInt()方法返回十进制整数,这样就可以对其自增1。

最后通过String的format()方法进行字符串格式化返回就可以了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

发表评论

表情:
评论列表 (有 0 条评论,170人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java自动生成编号

    Java自动生成编号 在新增数据时,往往需要自动生成编号。下面就以我的编号来说。 我的编号格式为:SR+日期(8位)+编号(3位)。 其中,日期为系统当前的日期。首先