zoukankan      html  css  js  c++  java
  • 【Mybatis】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

  • 相关阅读:
    Java自学二十六天
    Java自学三十四天
    Java自学三十二天
    Java自学三十天
    Java开学考试心得
    Java自学二十九天
    Java自学二十八天
    Java自学三十一天
    Java自学三十三天
    2020年月12日Java学习日记
  • 原文地址:https://www.cnblogs.com/CESC4/p/7363668.html
Copyright © 2011-2022 走看看