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;
}