java自动生成编号的实现(格式:yyyyMMdd+三位流水号)

这个问题需要考虑以下几个方面:
1、获取到当前的年月份;
2、要去数据库查询是否存在流水号数据;
3、存在就获取最大的那个流水号,实现自增加1的效果;
4、不存在就要生成新的流水号,并且存入数据库;

实现的代码:

public String generateOddNumber() {
        String newOddNum = null;
        // 获取当前时间
        LocalDate now = LocalDate.now(); 

         // 格式化当前时间
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        String prefix = now.format(formatter);
        
        // 获取当前最大的订单号
        String maxOddNum = findMaxOrderNo(prefix); 
        if (maxOddNum != null) {
            // 这里需要将自增后的数字按照“xxx”的格式,格式化成例如“001”这种
            newOddNum = prefix + String.format("%03d",(Integer.parseInt(maxOddNum.substring(8)) + 1));
        }else {
            newOddNum = prefix + "001";
        }
        return newOddNum ;
    }

你可能感兴趣的:(java自动生成编号的实现(格式:yyyyMMdd+三位流水号))