MyBatis-Plus主键ID生成策略
Mybatis Plus 提供了三种设置 主键生成策略的方式。其优先级顺序是:局部注解 > 全局 > 默认(雪花算法)。
默认主键生成策略:雪花算法
Mybatis Plus如果不做任何主键策略配置,默认使用的是雪花算法。该策略会根据雪花算法生成主键ID,主键类型为Long或String(具体到MySQL数据库就是BIGINT和VARCHAR),该策略使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)。
自定义主键策略
1 | public enum IdType { |
局部注解配置策略
1 |
|
全局配置策略
1 | mybatis-plus: |
扩展使用
INPUT用户输入ID策略的用法
- 用户自己设置ID,并在insert之前SET主键的值
- 一些有序列的数据库,比如Oracle,SQLServer等,针对这些数据库可以通过序列填充ID字段
Mybatis-Plus 内置了如下数据库主键序列(如果内置支持不满足需求,可实现 IKeyGenerator 接口来进行扩展)
- DB2KeyGenerator
- H2KeyGenerator
- KingbaseKeyGenerator
- OracleKeyGenerator
- PostgreKeyGenerator
Oracle 的Sequence
添加@Bean
1 |
|
实体类配置主键 Sequence,指定主键策略为 IdType.INPUT
1 |
|