java中如何创建编号

创建唯一编号

@Override
    public int registerImpl(Map<String, Object> user) {
        String preUuid;
        while (true) {
            String uuid = UUID.randomUUID().toString(); // 生成一个UUID
            String numOnlyStr = uuid.replaceAll("[a-zA-Z]", "0"); // 替换掉所有字母为数字0
            preUuid = numOnlyStr.substring(0, 10); // 截取前12位数字 
            Map<String, Object> u2id = login.uid(preUuid);
            Integer i = Integer.valueOf(u2id.get("Uid").toString());
            if (i == 0) break;
        }
        user.put("Organization_No", preUuid);
        try {
            return login.register(user);
        } catch (DuplicateKeyException e) {
            return 2;
        }
    }

UUID.randomUUID().toString()生成UUID 字符串的长度为 36 个字符,其中包括 32 个十六进制数字和 4 个分隔符

根据日期创建对订单编号

@Override
    public int insert_class_listImp(Map<Object, String> on) {
        Calendar cal = Calendar.getInstance();
        int y = cal.get(Calendar.YEAR) % 100;
        int m = cal.get(Calendar.MONTH);
        String Organization_No;
        if (++m < 10) {
            Organization_No = "PK" + on.get("Organization_No") + String.valueOf(y) + "0" + String.valueOf(m);
        } else {
            Organization_No = "PK" + on.get("Organization_No") + String.valueOf(y) + String.valueOf(m);
        }
        String a = daoClass.maxScheduling_Code(Organization_No);
        int insetAllStudent_try;
        try {
            if ("0".equals(a)) {
                on.put("Scheduling_Code", Organization_No + "0001");
            } else {
                int result = Integer.parseInt(a.substring(a.length() - 4));
                on.put("Scheduling_Code", Organization_No + String.format("%04d", result + 1));
            }
            insetAllStudent_try=daoClass.insert_class_list(on);
        } catch (Exception e) {
            insetAllStudent_try=0;
        }
        return insetAllStudent_try;
    }

在代码中if (++m < 10) 保证当日期为1-9号时候也可以呈现两位字符列如
20230606保证大家的编号长度一致
我的daoClass.maxScheduling_Code方法是模糊查询查看是否最大值为空为空创建:
PK<机构编号>2023060600001
不为空获取最大致后四位自增1新增!

<select id="maxScheduling_Code" resultType="java.lang.String">
        SELECT RIGHT(CAST(IFNULL(MAX(Scheduling_Code), '0') AS CHAR),4) AS max_suffix
        FROM dd_ClassScheduling WHERE Scheduling_Code LIKE  concat(#{Scheduling_Code},'%')
    </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值