【学习】uuid的使用

UUID不是128位长的吗,怎么生成的都是36个字符的字符串?

UUID.fromString("84D1319C-FBAF-644C-901A-8F091F25AF04"));
 UUID中有固定的四个 ”-“,所以32位长。  
128位是 二进制, 每四个二进制转一个16进制数。 128/4=32
所以,就是32个16进制数的字符了。
 

mybatis生成UUID主键,且获取当前新增的UUID主键

 在平时业务需求中,有可能会需要当前新增对象的主键ID。

 在此我对用UUID作为主键ID做了实验。

1 <selectKey  keyProperty="user.userId" resultType="java.lang.String" order="BEFORE">
2              select uuid()
3 </selectKey>
keyProperty:selectKey子元素返回值将赋值到领域模型的哪个属性中。
resultType:返回结果类型

order:BEFORE 标识在执行插入语句之前执行

在设置keyProperty="user.userId"时这段代码会在执行insert语句之前产生一条uuid并赋值到当前user对象中的userId中。

所以在新增成功后直接getUserId就可以获取当前主键了


Sql代码   收藏代码
  1. -- Create table  
  2. create table TECHNOLOGYCOMPANY  
  3. (  
  4.   ID              VARCHAR2(32) default SYS_GUID() not null,  
  5.   FLOWID          VARCHAR2(50),  
  6.   CONPANYID       NUMBER,  
  7.   ISCOMMUNICATION VARCHAR2(10)  
  8. )  

在oracle数据库中如何生成UUID字段,生成随机数

在sql语句中使用系统函数sys_guid()即可,比如:向temperature表中插入一条数据,主键是用uuid生成的。

insert into temperature (pkid,temperature,date,time) values(sys_guid(),'33','2013-05-20','10:33:04')

一般使用触发器时会设计到,向该表中插入数据。

在oracle数据库中,随机生成40-50的整数语句如下:

select dbms_random.value(40,90)  from dual

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值