生成mysql全局自增主鍵工具類

生成mysql全局自增主鍵工具類

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;

/**獲取mysql全局自增主鍵   getSeq()
 * @author wyc
 * @date 2019/8/29 10:52
 */
public class MajorKeyUtil {
    /*
     * 本類用於獲取mysql全局自增主鍵,格式爲  時間戳(yyMMddHHmm) + 5 位自增,自增範圍根據配置獲取(也可以加上秒yyMMddHHmmss)
     */

    private static DateFormat df = new SimpleDateFormat("yyMMddHHmm");//主鍵時間戳
    private static final int MAX_SEQ = 0; // 計數位最大值
    private static final int RESET_SEQ = 99999; //計數位重置初始值(可以自行設置)
    private static AtomicInteger seq = new AtomicInteger(RESET_SEQ); //計數器

    /**
     * 生成全局自增主鍵,字符串類型
     * @return 生成的主鍵
     */
    public static String getSeq(){
        seq.compareAndSet(MAX_SEQ, RESET_SEQ); //判斷是否進行重置
        return df.format(new Date()) + String.format("%05d", seq.incrementAndGet());
    }

    /**
     * 生成全局自增主鍵,long類型
     * @return 生成的主鍵
     */
    public static Long idSeq() {
        String str = getSeq();
        return Long.parseLong(str);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章