`
xurichusheng
  • 浏览: 344895 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

uuid 生成主键

    博客分类:
  • java
阅读更多

 

uuid 生成主键

 

UUID(全球唯一编号)

 

UUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID。从理论上讲,如果一台机器每秒产生10000000个UUID,则可以保证(概率意义上)3240年不重复。 
 
    UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID.

 

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API。UUID按照开放软件基金会 (OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与 时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网 卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的 GUID(Globals Unique Identifiers)。

 

 

import java.util.UUID;

/**
	 * @Title: generaterPrimaryKey
	 * @Description: 以UUID的方式生成主键
	 * @return String : 主键值
	 */
	public static synchronized String generaterPrimaryKey() throws Exception{
		
		UUID uuid = UUID.randomUUID();
		
		if (null==uuid || "".equals(uuid.toString())){
			throw new NullPointerException("uuid is null");
		}
		
		String primaryKey = String.valueOf(uuid);
		
		if (null!=primaryKey && primaryKey.contains("-")){
			primaryKey = primaryKey.replaceAll("-", "");
		}
		
		return primaryKey;
	}
 

 

 

 

分享到:
评论

相关推荐

    公司实际项目中采用UUID算法生成主键的工具类

    公司实际项目中采用UUID算法生成主键的工具类,有需要的朋友们可以拿去

    JAVA UUID 生成全球唯一ID

    GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复

    自动生成主键uuid.zip

    总结来说,"自动生成主键uuid.zip"中的内容可能涉及到如何在Java中使用UUID生成32位的无序和有序ID,这对于数据库主键或其他需要全局唯一标识的场景非常有用。通过理解UUID的生成机制和结合其他数据,开发者可以定制...

    Hibernate用UUID作为主键的Demo

    - **全局唯一性**:UUID生成的键值在全世界范围内都是唯一的,避免了主键冲突问题。 - **无序性**:UUID的生成不依赖于任何顺序,不会暴露数据插入的顺序。 - **隐私保护**:相比自增整型主键,UUID更难以关联到特定...

    32位UUID生成工具,16进制

    32位UUID生成工具,正如标题所描述的,是一种专门用来生成32个16进制数字组成的唯一标识的程序。尽管128位的UUID标准形式由32个十六进制数字组成,这里提到的"32位"可能是指显示或输入时使用的简化形式,即用户仅...

    hibernate映射文件--主键生成策略[参考].pdf

    8. uuid.hex:该策略由Hibernate基于128位UUID生成主键。 在实际应用中,我们可以根据不同的需求选择合适的主键生成策略,以确保数据的唯一性和一致性。例如,在集群环境下,我们可以选择native或sequence策略,以...

    UUID生成UUIDs的库

    - `ramsey/uuid` 库还提供了针对特定平台的优化,例如对于能提供硬件随机数的系统,Version 4的UUID生成速度会更快。 7. **扩展性**: - 库支持自定义生成器(Generator)和解析器(Decoder),允许用户根据需求...

    自动生成32位UUID的函数

    直接通过 dbo.[FunGetUUID32](NEWID())即可获取到32位UUID,非常简单方便。

    PB生成UUID.zip

    在实际应用中,PB生成UUID可以用于创建分布式系统中的唯一会话ID、记录日志时的追踪ID、或是构建分布式数据库时的主键等。理解如何在PB中生成和使用UUID对于进行高效的网络通信和数据存储非常重要。通过结合PB的序列...

    利用雪花算法生成uuid

    UUID,全称Universally ...总之,雪花算法提供了一种高效、有序的全局唯一ID生成方案,广泛应用于分布式系统,如数据库主键生成、消息队列的消息ID等。了解并掌握雪花算法,对于理解和设计分布式系统具有重要意义。

    jdk与javauuidgenerator生成uuid

    UUID,全称Universally ...如果你在项目中使用了`javauuidgenerator`这个第三方库,它可能提供了不同于JDK的UUID生成策略,具体细节需要查看该库的文档。在设计系统时,合理利用UUID可以有效解决很多唯一标识的问题。

    javascript生成uuid的js库文件

    它同样遵循RFC4122标准,提供了V1到V5的所有版本UUID生成,同时还有`v4()`函数,可以快速生成V4类型的UUID,该类型完全基于随机数。 3. `shortid`库:虽然名称中没有包含“UUID”,但这个库同样用于生成唯一标识符...

    uuid.zip_uuid

    UUID生成器是用来创建这些独特标识的工具,它确保生成的每个ID在全球范围内都是唯一的,避免了数据冲突。 在“uuid.zip_uuid”这个压缩包中,包含了两个文件:uuid.cpp和uuid.h,这通常意味着它们是C++编程语言中的...

    Hibernate全部注解

    - `uuid`:使用 UUID 生成主键。 - `hilo`:使用高/低位算法生成主键。 - `assigned`:主键由程序控制。 - **示例**: ```java @Entity public class User { @Id @GeneratedValue(generator = ...

    hibernate中自动生成主键的办法

    Hibernate作为一款流行的Java持久层框架,提供了多种自动生成主键的方法,以适应不同场景的需求。本文将深入探讨Hibernate中自动生成主键的几种常见策略及其应用场景。 ### 1. UUID.hex UUID(Universally Unique ...

    浅谈java获取UUID与UUID的校验

    在实际应用中,我们可以使用 UUID 来生成唯一的 ID,例如在数据库中生成一个唯一的主键。同时,我们也可以使用 UUID 来标识一些信息,例如用户的 ID、订单的 ID 等。 此外,我们还可以使用 UUID 来实现一些安全机制...

    PHP实现生成统一唯一标识符UUID

    在PHP中,生成UUID常常用于创建唯一的记录标识,比如数据库中的主键或者分布式系统中的唯一标识。本文将深入探讨如何使用PHP来实现UUID的生成。 一、开发环境 在Windows 8操作系统上,我们需要搭建一套LAMP(Linux...

    Go-Guuid是一款由Go语言开发的UUID生成服务.

    **Go-Guuid:Go语言实现的UUID生成器详解** UUID(Universally Unique Identifier)是一种用于唯一标识信息的128位数字,广泛应用于分布式系统、数据库、网络编程等多个领域。在Go语言中,开发人员经常需要生成UUID...

    数据库设计指南

    系统生成的主键提供了唯一性保障,但在某些场景下,自定义键可能更符合业务逻辑,如基于时间戳或UUID生成主键。此外,适时创建索引可以显著提升数据检索速度,但需注意过度索引会增加写入成本。 #### 保证数据完整...

    java 生成32位UUID

    在Java编程中,UUID(Universally Unique Identifier)是一种用于生成全局唯一标识符的标准。...在实际开发中,可以根据具体应用场景选择适合的UUID生成策略,如使用128位UUID的简化形式或其他特定算法。

Global site tag (gtag.js) - Google Analytics