您的位置:首页 > 产品设计 > UI/UE

uuid 生成主键

2013-01-28 09:41 197 查看
 

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)。

 

 

Java代码
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;   
    }  
转自http://xurichusheng.iteye.com/blog/1096644
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: