16
回答
java 唯一ID生成
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

    最近一个项目里面涉及业务流水唯一ID(要求数字字符串)的生成,原来采用的方式是时间戳+两位随机码,后来发现数据中也会有重复的数据,现在暂用的方法是匹配两次的编码是否相同,相同的话追加一个自增长的数字,代码如下(已省略业务编码部分):

private static String beforeBh;
private static String beforeNum;

public static String codeGenerate() {
  Date now = new Date();
  String behind = now.getTime()+"";
  if(beforeBh==null) {
   beforeBh = behind;
  } else if(beforeBh.equals(behind)) {
   behind = behind +beforeNum;
   beforeNum++;
  } else {
   beforeBh = behind;
   beforeNum = 0;
  }
  return behind;
 }

可以先不考虑编码长度,不过长度越短越好,希望各位大神给指点指点或者提出更好的方法

<无标签>
举报
jiqingluoye
发帖于3年前 16回/15K+阅

以下是问题补充:

  • @jiqingluoye :UUID转成的数字长度会在17~20之间浮动,不是稳定的 最好提供下10位长度的思路 这是私人问题,希望各位喷友给出给力方案后再来喷,谢谢 (3年前)
顶部