关闭

JAVA uuid的使用

314人阅读 评论(0) 收藏 举报

在使用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类型,这样就可以作为工具一样的去使用,例如工程的常用字符串、公共方法(跟业务没有什么关系)——例如得到系统时间,得到用户信息等等

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:309843次
    • 积分:8710
    • 等级:
    • 排名:第2262名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论