# primary-key-generator **Repository Path**: junlei0829/primary-key-generator ## Basic Information - **Project Name**: primary-key-generator - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-06-01 - **Last Updated**: 2020-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pk-generator 通用主键生成器,支持生成:Long型主键,流水号和级次编码 Long型主键: 基于雪花算法,但更简单,更容易理解,纯内存操作效率最高 支持分布式,只需在配置文件中加入node.id=节点号,默认支持16个节点(0-15) 流水号: 可以生成类似0000000001,0000000002这类编号,依赖数据库 需要pk_seed表,在sql文件加下有该表的创建语句 默认每生成200个流水号查询一次数据库,效率较高,支持分布式 级次编码 可以生成类似01,0101,010102这类编号,适用于商品类目,组织架构等数据结构 原理跟生成流水号类似,不过此类资源比较珍贵,所以默认每次生成都调用数据库 默认支持Mybatis连接数据库,如果使用者项目中没有Mybatis,还支持JPA方式, 如果两种都没有,支持使用者自定义实现PkSeedDao接口,并注册到spring容器中 使用: PrimaryKeyGenerator 用于获取Long型主键和流水号 GradeCodeGenerator 用于获取级次编码