uuid使用

这里写目录标题


工作第三天,给了个练手的项目模块,实战学习到的知识,在这里记录一下


在模块添加的时候,添加的是内容,但需要到数据库里面添加,那么就需要一个id,之前学校做项目都是用自增主键解决,工作后第一次接触到uuid,非常有用,记录一下:

uuid和自增主键区别:
自增Long类型的主键可以主键自增,数字类型占用空间小,走索引速度更快,对于排序有更好的性能,不用担心重复的问题,在程序中使用起来更方便。
UUID占用内存空间大,索引相对来讲慢一些,数据量大了可能会重复,不易排序,在程序中使用也不是很方便。
但是,
结合项目本身考虑。假如我们需要手动插入,或者从其他系统导入带有id的数据,这些数据的id和原来数据的id冲突了怎么办,并且这些数据也是数值型的?
新系统上线运行,旧系统同时运行,数据库异构,并且数据双向同步,这个时候如果id有冲突怎么办?
若是从外面导入数据,我们需要区别,需要将id前面加一个符号区分,这个时候又该怎么办?
在做系统集成的时候,如果新系统的主键不是数字类型的,那么就会考虑修改旧系统的主键类型,那么关联的外键如何处理呢?

使用场景:
自增数值ID:单机,小型系统。
UUID:适合用在大型项目微服务架构中,保证全局ID唯一性。

使用:
其实非常简单
uuid是:java.util.UUID;这个包下,导入就行

String uuid = UUID.randomUUID().toString().replaceAll("-", "");

UUID.randomUUID().toString()生成像44e128a5-ac7a-4c9a-be4c-224b6bf81b20这样的东西,只要你不需要通过HTTP传输就可以了,在这种情况下需要删除破折号。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值