如何实现后端开发框架(八)-自动生成主键ID
1. 问题描述
后端在设计数据库时每张表都需要设计一个主键,那么在开发框架上如何自动生成这个主键值呢?
2. 实现思路
在开发框架上给每张数据库表都设计一个独立的主键字段,如果数据表还需要业务主键那么就设计额外字段进行处理。
主键ID生成方式强烈推荐使用UUID就行了,不用使用数据库生成方式(数据库序列,自增长方式等),使用UUID在系统初始数据准备,系统上线数据准备,数据库数据迁移时会非常方便。
我们利用MyBatis-Plus的主键生成策略功能来实现自动生成主键ID。
参考资料: https://baomidou.com/guides/key-generator/
3. 实现步骤
往实体基类上添加通用主键ID,使用@TableId来标识主键字段,默认会使用雪花算法结合不含中划线的UUID作为ID生成方式。
如果想修改ID生成方式,例如使用数据库方式来生成ID,参考资料: https://baomidou.com/reference/#idtype
如果需要实现自定义业务ID生成,参考资料: https://baomidou.com/guides/key-generator/
4. 测试代码
使用Mybatis-Plus的数据库新增API后,数据库ID就会按照配置的主键生成策略自动生成。
5. 完整代码
完整代码见以下Git仓库中的"autogenerate-id"子项目: