1:生成32位UUID
1.1 JAVA 生成32位UUID
/**
* 生成32位UUID主键
*
* @return
*/
public static String getUUID() {
return UUID.randomUUID().toString().replace("-", "");
}
/**
* 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,
* 然后通过模62操作,结果作为索引取出字符,这样重复率大大降低。
*
* @return
*/
public static String getShortUUID() {
StringBuffer shortBuffer = new StringBuffer();
String uuid = UUID.randomUUID().toString().replace("-", "");
for (int i = 0; i < UUID_CHAR_LEN_INT_8; i++) {
String str = uuid.substring(i * 4, i * 4 + 4);
int x = Integer.parseInt(str, 16);
shortBuffer.append(chars[x % 0x3E]);
}
return shortBuffer.toString();
}
1.2 MySQl生成uuid
1.2.1 UUID函数
在MySQL中,可以用uuid()函数来生成一个UUID,如下图:
SELECT UUID() as uuid;
1.2.2 replace函数
默认生成的uuid含有'-',我们可以使用replace函数替换掉'-',SQL如下:
SELECT REPLACE (UUID(),"-","") as UUID;
1.2.3 Insert语句中使用UUID
如果一个表中id字段使用uuid来作为主键,那我们可以使用下面的语句来插入数据:
INSERT INTO t_inventive_principle (`id`,`code_num`,`name`) VALUES (REPLACE(UUID(),"-",""),1,'分割原理');