idworker-client生成唯一id

版权声明: https://blog.csdn.net/Dongguabai/article/details/83692137

主要是基于github上的一个开源id生成框架。

引入依赖:

<!--a client of idworker to generate global unique id-->
        <dependency>
            <groupId>com.github.bingoohuang</groupId>
            <artifactId>idworker-client</artifactId>
            <version>0.0.8</version>
        </dependency>

简单封装的工具类:

import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.n3r.idworker.Sid;

import java.util.Random;

/**
 * 主键生成工具类
 * @author Dongguabai
 * @date 2018/7/27 10:52
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class KeyGenerateUtil {

    /**
     * 一天最大毫秒86400000,最大占用27比特
     * 27+10+11=48位 最大值281474976710655(15字),YK0XXHZ827(10字)
     * 6位(YYMMDD)+15位,共21位
     *
     * @return 固定21位数字字符串
     */
    public static String get21Num() {
       return Sid.next();
    }


    /**
     * 返回固定16位的字母数字混编的字符串。
     * @return 固定16位的字母数字混编的字符串
     */
    public static String get16LetterAndNum() {
        return Sid.nextShort();
    }


    /**
     * 生成唯一的主键
     * 格式: 时间+随机数
     * @return
     */
    public static synchronized String ge19Num() {
        Integer number = new Random().nextInt(900000) + 100000;
        return String.valueOf(System.currentTimeMillis()) + number;
    }

}

还有一个比较好的唯一id生成方法可以参看:https://blog.csdn.net/Dongguabai/article/details/83692012

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/83692137