UUID全称Universal Unique Identifier是一串128位数字码,用于唯一识别网络对象或者事件。
核心思想是结合机器的网卡、当地时间、时间戳,随机数,机器号来生成GUID
项目背景:
项目中存在公司基础信息,不同产线的资质信息,合同,银行账号等信息
新增场景,需要有一个sid标识公司,使用pid标识公司下的产线。
仅仅使用自增的主键是不足够的,还要生成一个唯一性标识来区分产线!
方法:使用java自带生成uuid生成标识公司和产线的sid和pid
private String queryUUID() throws SQLException {
//防止并发创建 synchronized (this) { String uuid = UUID.randomUUID().toString(); int count = baseDao.queryWithId(uuid); int switchCount = 0;
//防止出现重复 并且提供5次的重试次数 while (count > 0 || switchCount < 5) { uuid = UUID.randomUUID().toString(); count = baseDao.queryWithId(uuid); switchCount++; } return uuid; } }
新增数据:生成新的uuid
更新数据:当前的uuid是存在的,先删除数据再更新,更新需要同时更新5张表以上!
若写更新语句,那么需要重写5次更新语句,重写较多的更新逻辑,因此采用先删除数据再插入数据!
同时使用注解@Transactional保证事务性,要么全部成功,要么全部失败!
标签:count,uuid,产线,更新,标识,使用,设计,UUID From: https://www.cnblogs.com/developS/p/17594505.html