• 自动生成编号,id,序号,采用不同策略生成


      各种id生成策略

      

    1:随机编号

     1 public static String genImageName() {  
     2         //取当前时间的长整形值包含毫秒  
     3         long millis = System.currentTimeMillis();  
     4         //加上三位随机数  
     5         Random random = new Random();  
     6         int end3 = random.nextInt(999);//该方法的作用是生成一个随机的int值,该值介于[0,n]的区间,也就是0到n之间的随机int值,包含0而不包含n。  
     7         //如果不足三位前面补0  String.format("%03d", end3); 3代表要获得的总长度,0代表传入的参数不够的时候会用0作为填充,d会被传入的参数替代
     8         String str = millis + String.format("%03d", end3);   
     9         return str;  
    10     } 

      也可以根据需要在str的前面拼接上前缀:

       

    2:流水编号

     1  public static String getstr(){
     2          String Orderno = null;
     3          String maxOrderno = "NO201601270001"; // 从数据库查询出的最大编号
     4          SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); // 时间字符串产生方式
     5          String uid_pfix = "NO" + format.format(new Date()); // 组合流水号前一部分,NO+时间字符串,如:NO20160126
     6          if (maxOrderno != null && maxOrderno.contains(uid_pfix)) {
     7              String uid_end = maxOrderno.substring(10, 14); // 截取字符串最后四位,结果:0001
     8              System.out.println("uid_end=" + uid_end);
     9              int endNum = Integer.parseInt(uid_end); // 把String类型的0001转化为int类型的1
    10              System.out.println("endNum=" + endNum);
    11              int tmpNum = 10000 + endNum + 1; // 结果10002
    12              System.out.println("tmpNum=" + tmpNum);
    13              Orderno = uid_pfix +subStr("" + tmpNum, 1);// 把10002首位的1去掉,再拼成NO201601260002字符串
    14          } else {
    15              Orderno = uid_pfix + "0001";
    16          }
    17         return Orderno;
    18     }
    19     
    20     public static String subStr(String str, int start) {
    21         if (str == null || str.equals("") || str.length() == 0)
    22             return "";
    23         if (start < str.length()) {
    24             return str.substring(start);
    25         } else {
    26             return "";
    27         }
    28     }

    3:uuid获取

     1 /*UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。
     2      * UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,
     3      * 它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。
     4      * 由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,
     5      * 过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号
     6      * (如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
     7      * */
     8     public static String getUUID() {
     9         return UUID.randomUUID().toString().replace("-","");
    10       }
  • 相关阅读:
    合并两个排序的链表
    把数组排成最小的数
    maven下使用jstl标签(1.2)版本
    SpringMVC5中,@ModelAttribute注解详解
    JavaWeb项目中斜杠(/)表示web工程、webapps的场景
    JavaWeb中jsp路径斜杆(/)跟没斜杆的路径映射问题
    关于Java多线程-interrupt()、interrupted()、isInterrupted()解释
    常见的HTTP状态码
    Java中的String,StringBuilder,StringBuffer三者的区别
    解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题
  • 原文地址:https://www.cnblogs.com/GH0522/p/9051682.html
Copyright © 2020-2023  润新知