JAVA uuid的使用

原创 2013年12月04日 09:56:27

在使用Oracle的时候,需要添加一个唯一的主键,一般使用的是36位的唯一的字符串,我们有两种方式

 

一、使用数据库自动生成的方式,自动添加唯一的ID值

 

create table t_log(
    ssid varchar2(36) default sys_guid() primary key,
    type varchar2(10),
    detail varchar2(100)
);

default sys_guid()这个函数时Oracle自带的,在插入数据的时候不用插入该字段就会自动生成

insert into t_log(type,detail)values('1','测试无主键');

 

 

二、使用JAVA自动生成的UUID,作为数据库字段的主键

 

package demo.uuid;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class TestUUID {

	public static void main(String[] args) {
		String uuid = UUID.randomUUID().toString();
		System.out.println(uuid.length());
		System.out.println(uuid.replace("-", ""));
		
		int num = str2Num("10000");
		System.out.println(num);
		
		String date = transferToFormat("huangbia");
		System.out.println(date);
		
		String nowDate = getCurrentDateStr(SDF_YYYY_MM_DD_HH_MM_SS_SS);
		System.out.println(nowDate);
	}

	/**
     * 字符串转为数字,截取前面的0
     * @param str
     * @return
     */
    public static int str2Num(String str){
    	char[] array = str.toCharArray();
    	System.out.println(array);
    	System.out.println(array.length);
    	for(int i = 0; i < array.length; i++){
    		System.out.println(array[i]);
    		if(array[i] != '0'){
    			str = str.substring(i);
    			break;
    		}
    	}
    	return Integer.parseInt(str);
    }
    
    /**
	 * 将字符串转换成2010-12-21格式的
	 * @param propName
	 * @return
	 */
	public static String transferToFormat(String trDate)
	{
		StringBuffer busiDate = new StringBuffer();
		busiDate.append(trDate.substring(0, 4));
		busiDate.append("-");
		busiDate.append(trDate.substring(4, 6));
		busiDate.append("-");
		busiDate.append(trDate.substring(6, 8));
		return busiDate.toString();

	}
	
	/**
	 * SDF_YYYY_MM_DD_HH_MM_SS_SS格式
	 */
	public static final SimpleDateFormat SDF_YYYY_MM_DD_HH_MM_SS_SS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS"); 
	
	/**
	 * 获取当前日期的字符串形式
	 * @param sdf 格式化器
	 * @return
	 */
	public static String getCurrentDateStr(SimpleDateFormat sdf){
		return sdf.format(new Date());
	}
}

 

备注:上面的代码我相信大家都能看的明白,但是我这里想说明的是关于如何使用“工具类”。

 

对于定义属性(常用的变量)名称需要使用大写,使用的是static类型,这样就可以作为工具一样的去使用,例如工程的常用字符串、公共方法(跟业务没有什么关系)——例如得到系统时间,得到用户信息等等

JAVA组件使用---UUID使用方法

JAVA UUID 生成 GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生100000...
  • lidew521
  • lidew521
  • 2013年01月20日 19:42
  • 18798

uuid的使用

UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准.        UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识...
  • superch0054
  • superch0054
  • 2013年08月08日 22:50
  • 5896

全局唯一ID--UUID介绍、JAVA中UUID的使用

UUID是如何保证唯一性的? 为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素。当然,你要说UUID是不是绝对的不会出现重...
  • zixiao217
  • zixiao217
  • 2017年09月15日 19:50
  • 643

什么是uuid以及uuid在java中的使用

uuid的介绍和uuid在java中的应用
  • m0_37600150
  • m0_37600150
  • 2017年06月13日 19:36
  • 876

UUID在Java中的两种产生方式

需求: 集群环境下需要产生uuid,uuid的作用不言而喻 转发请注明出处:http://snv.iteye.com/ 环境: Xml代码   dependency>    ...
  • u011484382
  • u011484382
  • 2014年01月16日 15:31
  • 1017

UuidUtil.java Uuid工具类

import java.util.UUID; public class UuidUtil { public static String getUuid(){ UUID uuid = UUID....
  • jianfpeng241241
  • jianfpeng241241
  • 2016年06月21日 15:05
  • 2122

初步探索java中的UUID

探索java中用来随机生成16位Long型数据的UUID
  • u010137431
  • u010137431
  • 2015年07月03日 20:41
  • 464

深入解析UUID及其应用

讨论UUID的定义、分类、应用及生成工具。 什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的...
  • yipiankongbai
  • yipiankongbai
  • 2014年05月07日 20:47
  • 29455

UUID解析与使用

什么是UUID?UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:经由一定的算法机器...
  • wangshuang1631
  • wangshuang1631
  • 2017年04月05日 17:22
  • 1780

Jpa主键UUID生成策略

Jpa以UUID生成主键有两种方法: 1.不建议使用,因为和hibernate有关,违背了jpa的原则 //jpa (hibernate实现)的UUID生成主键策略 //eclips...
  • God_lamb_1
  • God_lamb_1
  • 2013年01月30日 17:14
  • 3279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA uuid的使用
举报原因:
原因补充:

(最多只允许输入30个字)