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)。
- /**
- * @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