postgresql数据库中使用使用UUID

目录

问题现象:

问题分析:

解决方法:


问题现象:

今天在项目学习中,需要给数据添加一个id,组长要求使用UUID.


问题分析:

由于我们的项目中使用的是postgresql数据库,那么如果在postgresql语句中使用UUID呢?

正常来说很多小伙伴应该都试过在java中使用 java.util.UUID 这个工具类吧!

这确实是个很方便的工具类,然而我在想的是,直接在sql语句中使用uuid,为什么要这样做呢?

其实答案很简单,就是因为,如果直接操作sql语句完成dao操作就可以节省很多时间;

试想一下:假如你从已有的数据库表的数据中做一个select统计,然后你又需要将这些统计好的数据(结果集)插入到某个统计表中;每条记录都需要一个id,这种情况下你会怎么操作呢?

也许有人会这样做,首先编写一个sql语句去执行 select 统计操作,然后将结果集封装成实体类对象传到后端,再用java.util.UUID工具类给这个对象的 id 属性 添加一个 随机的uuid值,然后再执行一个insert操作,将数据插入到数据库统计表中去.

嗯,这个想法很不错,是再正常不过的逻辑,只是缺点也很明显,那就是效率会很低,

假如你需要统计的数据是以万,十万等更大的单位量的话,这个效率低的现象就会非常的明显.

因为从数据库select统计的结果集数据映射到java后端的实体类和调用java函数添加UUID的整个程序中,消耗的时间,远比你直接从sql中操作UUID要多很多;

在sql语句中添加uuid的话,就可以在select统计的过程中就可以操作了,因此获得的结果集中就直接带有了id字段值,同时利用sql中的查询插入结构表达式:

insert into table2 select xxx,yyy,zzz from table2

也比在java后端中分成select和insert两个dao操作数据库要更快.

那么在了解了sql的好处之后,就要和大家分享一下该如何实现了!

步骤如下:

1.安装 uuid-ossp 文件:

在postgresql数据库中,是不能直接使用UUID函数的,需要手动安装 uuid 的相关文件,才能应用UUID相关的函数.

2.调用UUID的相应函数:

在安装了 uuid-ossp 文件后,通过 select 语句 调用UUID的相应函数即可获取到随机id;


解决方法:

1.安装 uuid-ossp 文件,在sql编辑器中编写并执行该语句:

create extension "uuid-ossp" ;

2.调用UUID的相应函数,:

select uuid_generate_v4() 或 select uuid_generate_v1() 皆可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值