[知了堂学习笔记]代码生成唯一id(并发量不大的情况下)
2018-03-05 09:26
477 查看
时间序列生成唯一id
原理:将当前时间转为一个唯一的时间序列,做唯一的id
原理:将当前时间转为一个唯一的时间序列,做唯一的id
package com.finalcial.util; import java.text.DecimalFormat; import java.text.FieldPosition; import java.text.Format; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.logging.Logger; /** * 生成唯一的时间id * @author Administrator * */ public class TimeIdUtil { public TimeIdUtil() { } private static final Logger logger = Logger.getLogger("log"); private static final FieldPosition HELPER_POSITION = new FieldPosition(0); private final static Format dateFormat = new SimpleDateFormat("YYYYMMddHHmmssS"); private final static NumberFormat numberFormat = new DecimalFormat("0000"); private static int seq = 0; private static final int MAX = 9999; /** * 时间格式生成序列 * @return */ public static synchronized String getId() { Calendar rightNow = Calendar.getInstance(); StringBuffer sb = new StringBuffer(); dateFormat.format(rightNow.getTime(), sb,HELPER_POSITION); numberFormat.format(seq, sb, HELPER_POSITION); if (seq == MAX) { seq = 0; }else { seq++; } logger.info("THE SQUENCE IS :" +sb.toString()); return sb.toString(); } }
相关文章推荐
- 在高并发分布式情况下生成唯一标识id
- PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结
- 两种方法利用Java生成唯一ID,取当前时间与字母随机组合,并发少的情况足以胜任
- 如何在高并发分布式系统中生成全局唯一Id
- Mybatis学习笔记八:代码自动生成
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- Hibernate 学习笔记03 --ID生成策略
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- [知了堂学习笔记]打印生成word文档(jq)
- 高并发分布式环境中获取全局唯一ID[分布式数据库全局唯一主键生成]
- MyGeneration学习笔记(3) : dOOdads及生成代码的一些bug
- 如何在高并发分布式系统中生成全局唯一Id
- 高并发 sql 生成不重复编号 (订单号) & 如何在高并发分布式系统中生成全局唯一Id
- Hibernate学习笔记(4)ID生成策略
- 【转】高并发分布式系统中生成全局唯一Id汇总
- 【转】如何在高并发分布式系统中生成全局唯一Id
- FastSpring学习笔记二(使用工具MyGeneration生成Model和NHibernate的代码 )
- 生成对抗网络DCGAN+Tensorflow代码学习笔记(三)----ops.py
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存