2019独角兽企业重金招聘Python工程师标准>>>

import java.util.ArrayList;
import java.util.List;
import java.util.Random;public final class GeneratedKeys {private static final Random     RANDOM                   = new Random();private static final int        MAX_SIZE                 = 1050;        //最多不超过1050条private static final List<Long> LOCAL_TIMESTAMP_KEY_POOL = new ArrayList<>(MAX_SIZE);/*** 利用本地生成时间戳,为主键** @return*/static synchronized public long localTimestampKey() {//如果本地主键池中大于MAX_SIZE个,那么就将其清除,防止内存溢出if (LOCAL_TIMESTAMP_KEY_POOL.size() > MAX_SIZE) {LOCAL_TIMESTAMP_KEY_POOL.subList(LOCAL_TIMESTAMP_KEY_POOL.size() - 120, LOCAL_TIMESTAMP_KEY_POOL.size()).clear();}long timeStamp = System.currentTimeMillis() * 1000 + getSlot();while (LOCAL_TIMESTAMP_KEY_POOL.contains(timeStamp)) {int i = 110000;    //在此等侍while (i > 0) {i--;}timeStamp = System.currentTimeMillis() * 1000 + getSlot();}LOCAL_TIMESTAMP_KEY_POOL.add(0, timeStamp);return timeStamp;}/*** 获取111-999 之间的数** @author Canaan* @date 2019/6/9 18:33*/private static int getSlot() {StringBuilder slot = new StringBuilder();for (int i = 0; i < 3; i++) {slot.append(RANDOM.nextInt(10));}return Integer.valueOf(slot.toString());}}

这个不能集群使用

转载于:https://my.oschina.net/u/2552286/blog/1526953

java 利用时间生成主键相关推荐

  1. java根据日期生成表主键_java 利用时间生成主键

    private final static Vector KEY_POOL = new Vector<>(); /** 主键生成 @return */ static public synch ...

  2. Java利用poi生成word(包含插入图片,动态表格,行合并)

    Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: 图表 1 Word生成结果: 图表 2 需要的jar包:(具体jar可自行去maven下载) Test测试类: imp ...

  3. 多线程调用生成主键流水号存储过程产生主键冲突问题解决方案

    遇到开发多线程测试插入数据的时候发现主键冲突问题 问题具体描述如下: -------------------------------------------------------------- 调用 ...

  4. plsql导入数据主键_使用plsql添加数据并自动生成主键

    使用plsql添加数据并自动生成主键 步骤如下: 步骤一:新建需要创建的表如: -- Create table create table IRC_SYS_DATADIC ( datadic_id VA ...

  5. 三种获得自动生成主键的方法,getGeneratedKeys,专用SQL和可更新的结果集

    简单总结了一下我目前知道的方法. package test; import java.sql.Connection; import java.sql.DriverManager; import jav ...

  6. MySQL序列以及生成主键编号记录

    文章目录 广告 操作MySQL常用命令 生成主键编号记录 MySQL时间类型笔记 序列的创建 MySQL中文转汉语拼音(未解决多音字,生僻字等问题) case when else end 语句 广告 ...

  7. MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)

    MyBatis自动生成的主键很多数据库支持自动生成主键的数据类型.不过这通常(并不总是)是个私有的特性.SQL Map 通过<insert>的子元素<selectKey>来支持 ...

  8. mysql 存储过程 主键_存储过程生成主键

    存储过程生成主键 MySQL delimiter $$CREATE PROCEDURE generateKeys(in pm_name varchar(20))begindeclare curr_Ke ...

  9. Entity Framework Core 使用HiLo生成主键

    HiLo是在NHibernate中生成主键的一种方式,不过现在我们可以在Entity Framework Core中使用.所以在这篇内容中,我将向您在介绍如何在Entity Framework Cor ...

  10. dm数据库无法用序列自动生成主键,无法解析的成员访问表达式【SEQ_STU_CON_NEXTVAL】

    报错信息: 无法解析的成员访问表达式[SEQ_STU_CON_NEXTVAL] select SEQ_STU_CON_NEXTVAL 这种错的解决方案,在dm数据库中创建一个序列叫SEQ_STU_CO ...

最新文章

  1. Java培训找什么样的机构比较好
  2. 快速区域积分直方图实现
  3. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)
  4. python3.6.5无法安装-Python3.6无法安装numpy,如何解决?
  5. SpringMVC之组合注解@GetMapping
  6. (转)java动态代理与aop
  7. android id 重名_android - 解决“应用自定义权限重名”
  8. hihocoder第226周:打表找规律
  9. 行业观察:拐点已至!抛弃传统数据库,乘云而上!
  10. 第15届Pwn2Own大赛确定目标和奖金
  11. speedoffice(word)字体如何设置为斜体
  12. 基于Matlab的自适应低通滤波器设计,基于MATLAB的自适应滤波器的设计
  13. 苹果手写笔有必要买吗?性价比电容笔排行榜
  14. python numpy 多条件筛选
  15. 2020年电商行业的前景
  16. python nlp文本摘要实现_用TextRank算法实现自动文本摘要
  17. 生成对角矩阵 numpy.diag
  18. 李开复给中国大学生的第六封信—选择的智慧
  19. 时序数据库:TimescaleDB的安装
  20. python 股票库_GitHub - zxyxz/stock: stock,股票系统。使用python进行开发。

热门文章

  1. 视图状态机制下的IStateManager接口
  2. 25 矩阵——QR分解、Householder 矩阵、镜面反射
  3. Tensorflow:批归一化和l1l2正则化
  4. This program requires version 3.4.0 of the Protocol Buffer runtime library
  5. linux c 密码 星号,Linux C : 登录密码星号 * 显示,包含能回退 backspace
  6. Ros简单程序编写及使用类Hello World
  7. 表单组件_从0到1封装表单组件(TypeScript + Vue3.0 版)
  8. Flutter进阶第13篇: 打开外部浏览器、打开外部应用、拨打电话、发送短信
  9. SQL Server 分离
  10. git log --stat的使用说明