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