zoukankan      html  css  js  c++  java
  • mybatisplus之主键生成策略

    mybatisplus之主键生成策略

    mybatisplus支持多种主键生成策略,默认采用认 ID_WORKER 即雪花算法

    • 雪花算法

    snowflflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。可以保证几乎全球唯一!

    mybatisplus默认主键生成策略有可能会和我们的数据库产生冲突,导致插入数据失败;当遇到这种情况时,我们需要自己配置主键生成策略,在实体类对应主键加注解

    package com.yl.bean;
    
    import com.baomidou.mybatisplus.annotation.FieldFill;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableField;
    import com.baomidou.mybatisplus.annotation.TableId;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * 用户实体类
     */
    @Data
    @NoArgsConstructor
    public class User implements Serializable {
        @TableId(type=IdType.AUTO)//配置主键
        private Integer id;
        private String name;
        private Integer age;
        private String email;
        @TableField(fill = FieldFill.INSERT )//插入数据时更新该字段
        private Date createTime;
        @TableField(fill = FieldFill.INSERT_UPDATE)//插入和修改时更新该字段
        private Date updateTime;
    }
    
    

    主键生成类型源码解释

    public enum IdType { 
        AUTO(0), // 数据库id自增,选择这种类型数据库表主键要设置为自增 
        NONE(1), // 未设置主键 
        INPUT(2), // 手动输入 
        ID_WORKER(3), // 默认的全局唯一id
        UUID(4), // 全局唯一id 
        uuid ID_WORKER_STR(5); //ID_WORKER 字符串表示法 }
    
    记得快乐
  • 相关阅读:
    调研当前大学生的三个痛点
    作业-- 统计文本文件中的字符数、单词数、行数
    我的课程表--项目需求分析
    Android随机生成四则运算
    校友信息管理&SNS互动平台之前言、目录及说明
    校友信息管理&SNS互动平台之技术框架选择
    校友信息管理系统&SNS互动平台之用户需求及概要设计
    WordPress文件上传与下载问题解决
    oc - NSArray基础用法总结
    AutoLayout 使用详细
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13895954.html
Copyright © 2011-2022 走看看