return UUID.randomUUID().toString().replace(StringPool.DASH, StringPool.EMPTY); } }
发现mybatis-plus默认的主键生成是全局唯一的UUID,会导致生成的id过长。 并且官方也提供了解决方法,如下图 可这只是将防止了前端接收时的精度丢失,并没有解决我的问题。 根据文档,可以得出一个新的解决办法,并且不用更改DO类代码: 将文档中所说的id-type配置设置为0即可。 Mybatis-Plus id主键生成的问题 简要...
} public static String uuid() { return UUID.randomUUID().toString().replaceAll("-", ""); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39...
UUID(Universally Unique Identifier):UUID是一种算法,用于生成全局唯一的标识符。UUID是由一组随机数字和字母组成,长度为36个字符,通常以连字符分隔。UUID的优点是非常安全,几乎不可能重复,但是它的缺点是生成的标识符比较长,不太适合作为数据库主键 自增ID:自增ID是指在数据库中自动递增的整数,通常作为表的主键。...
mybatis-plus自3.3.0开始,默认使用雪花算法+UUID(不含中划线),但是它并没有强制让开发者配置机器号。这一点很是疑惑,这样可能会让不了解雪花算法的人埋下了一个坑。 但是这么强大的一个框架难道真的没有做优化吗?带着问题,查看了下mybatis-plus雪花算法源码com.baomidou.mybatisplus.core.toolkit.Sequence。最终...
(2)UUID/GUID:采用随机算法生成的字符串,理论上能够保证不重复,但主键长度较长,不便于存储和索引。 (3)分布式ID生成器:采用雪花算法、UID、美团Leaf等算法生成的主键,能够在分布式系统中实现全局唯一,且主键长度较短,但实现略复杂。 (4)数据库序列(Sequence):一种由数据库提供的生成主键的方法,能够保证主键唯一,...
ASSIGN_UUID:可以在分布式的情况下使用,而且能够保证唯一,但是生成的主键是32位的字符串,长度过长占用空间而且还不能排序,查询性能也慢 ASSIGN_ID:可以在分布式的情况下使用,生成的是Long类型的数字,可以排序性能也高,但是生成的策略和服务器时间有关,如果修改了系统时间就有可能导致出现重复主键 ...
ASSIGN_UUID是自动生成一个不重复的、长度为32位的字符串,也能在分布式系统中使用 因此使用ASSIGN_UUID时需要注意: 实体类的主键类型不能是Long,而应该改成String类型 表中的主键类型设置为varchar,长度要大于32,如果长度小的话就会导致插入失败 ASSIGN_UUID的缺点比较明显:生成的主键是32位的字符串,长度过长占用空...
KevinCGHcommentedAug 3, 2018 如题,目前配置id-type: uuid,自动生成的是32位的uuid 比如 fee8a9e8aba4443a9940c3aae9051b2f 有配置或者扩展可以生成36位带-的UUID吗? ff1d1b27-15aa-48c5-be1c-31251ede32a4 miemieYahoclosed this ascompletedAug 6, 2018 Member...