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 字符串表示法 }
    
    记得快乐
  • 相关阅读:
    2017.0323.数字电路与系统-触发器
    2017.0322.数字电路与系统-触发器
    前端切图|点击按钮div变色
    当鼠标聚焦时输入框变色(focus事件实例)
    ajax实现简单的点击左侧菜单,右侧加载不同网页
    前端切图:自制简易音乐播放器
    移动开发之css3实现背景几种渐变效果
    jQuery实现多种切换效果的图片切换的五款插件
    jQuery实现点击开关图片切换
    三个Bootstrap免费字体和图标库
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13895954.html
Copyright © 2011-2022 走看看