主键为String,自增策略

小王子 1.6K 0

环境

  • 框架:RuoYi-Vue-Plus
  • Spring Boot:2.X
  • Mybatis-Plus:3.X
  • MySQL:8.0

问题

在一些时候,我们的主键id都是int类型,采用数据库自增策略。如果当我们的业务需要采用String类型的数据库,我们该如何实现自增策略呢?

分析

在MySQL中,int可以设置为自增,而String则不可以设置自增。那么我们如果需要自增的话,只能在代码中实现 了。

其实Mybatis-Plus已经给我们封装好了自增的方法,我们在实体类中添加@Table(type=xxx)注解即可。

官方也给了我们相关注解的用法

请注意Mybatis-Plus版本

 
/**
 * 生成ID类型枚举类
 *
 * @author hubin
 * @since 2015-11-10
 */
@Getter
public enum IdType {
/**
* 数据库ID自增
*该类型请确保数据库设置了 ID自增 否则无效
*/ 
AUTO(0), 

/** 
* 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT) 
*/ 
NONE(1), 

/** 
* 用户输入ID *该类型可以通过自己注册自动填充插件进行填充
*/ 
INPUT(2), 

/* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */

/** 
* 分配ID (主键类型为number或string), 
* 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法) 
* 
* @since 3.3.0 
*/ 
ASSIGN_ID(3), 


/** 
* 分配UUID (主键类型为 string) 
* 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace("-",""))
 */ 
ASSIGN_UUID(4); 
private final int key; 
IdType(int key) { this.key = key; } }

解决

根据官方提供的我们可以填写相应的注解完成String自增

主键为String,自增策略

发表评论 取消回复
表情 图片 链接 代码

分享