java 利用时间生成主键
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 利用时间生成主键相关推荐
- java根据日期生成表主键_java 利用时间生成主键
private final static Vector KEY_POOL = new Vector<>(); /** 主键生成 @return */ static public synch ...
- Java利用poi生成word(包含插入图片,动态表格,行合并)
Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: 图表 1 Word生成结果: 图表 2 需要的jar包:(具体jar可自行去maven下载) Test测试类: imp ...
- 多线程调用生成主键流水号存储过程产生主键冲突问题解决方案
遇到开发多线程测试插入数据的时候发现主键冲突问题 问题具体描述如下: -------------------------------------------------------------- 调用 ...
- plsql导入数据主键_使用plsql添加数据并自动生成主键
使用plsql添加数据并自动生成主键 步骤如下: 步骤一:新建需要创建的表如: -- Create table create table IRC_SYS_DATADIC ( datadic_id VA ...
- 三种获得自动生成主键的方法,getGeneratedKeys,专用SQL和可更新的结果集
简单总结了一下我目前知道的方法. package test; import java.sql.Connection; import java.sql.DriverManager; import jav ...
- MySQL序列以及生成主键编号记录
文章目录 广告 操作MySQL常用命令 生成主键编号记录 MySQL时间类型笔记 序列的创建 MySQL中文转汉语拼音(未解决多音字,生僻字等问题) case when else end 语句 广告 ...
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
MyBatis自动生成的主键很多数据库支持自动生成主键的数据类型.不过这通常(并不总是)是个私有的特性.SQL Map 通过<insert>的子元素<selectKey>来支持 ...
- mysql 存储过程 主键_存储过程生成主键
存储过程生成主键 MySQL delimiter $$CREATE PROCEDURE generateKeys(in pm_name varchar(20))begindeclare curr_Ke ...
- Entity Framework Core 使用HiLo生成主键
HiLo是在NHibernate中生成主键的一种方式,不过现在我们可以在Entity Framework Core中使用.所以在这篇内容中,我将向您在介绍如何在Entity Framework Cor ...
- dm数据库无法用序列自动生成主键,无法解析的成员访问表达式【SEQ_STU_CON_NEXTVAL】
报错信息: 无法解析的成员访问表达式[SEQ_STU_CON_NEXTVAL] select SEQ_STU_CON_NEXTVAL 这种错的解决方案,在dm数据库中创建一个序列叫SEQ_STU_CO ...
最新文章
- Java培训找什么样的机构比较好
- 快速区域积分直方图实现
- Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)
- python3.6.5无法安装-Python3.6无法安装numpy,如何解决?
- SpringMVC之组合注解@GetMapping
- (转)java动态代理与aop
- android id 重名_android - 解决“应用自定义权限重名”
- hihocoder第226周:打表找规律
- 行业观察:拐点已至!抛弃传统数据库,乘云而上!
- 第15届Pwn2Own大赛确定目标和奖金
- speedoffice(word)字体如何设置为斜体
- 基于Matlab的自适应低通滤波器设计,基于MATLAB的自适应滤波器的设计
- 苹果手写笔有必要买吗?性价比电容笔排行榜
- python numpy 多条件筛选
- 2020年电商行业的前景
- python nlp文本摘要实现_用TextRank算法实现自动文本摘要
- 生成对角矩阵 numpy.diag
- 李开复给中国大学生的第六封信—选择的智慧
- 时序数据库:TimescaleDB的安装
- python 股票库_GitHub - zxyxz/stock: stock,股票系统。使用python进行开发。
热门文章
- 视图状态机制下的IStateManager接口
- 25 矩阵——QR分解、Householder 矩阵、镜面反射
- Tensorflow:批归一化和l1l2正则化
- This program requires version 3.4.0 of the Protocol Buffer runtime library
- linux c 密码 星号,Linux C : 登录密码星号 * 显示,包含能回退 backspace
- Ros简单程序编写及使用类Hello World
- 表单组件_从0到1封装表单组件(TypeScript + Vue3.0 版)
- Flutter进阶第13篇: 打开外部浏览器、打开外部应用、拨打电话、发送短信
- SQL Server 分离
- git log --stat的使用说明