1.当你使用mybatis-plus时,如果不设置主键自增策略,默认使用雪花算法

两种方法默认设置mybatis主键自增策略:

1.单个实体类设置,作用域只有这个类

需要在创建数据表的时候设置主键自增

实体字段中配置 @TableId(type = IdType.AUTO)

@TableId(type = IdType.AUTO)

private Long id;

2.全局设置,去除了挨个设置主键自增策略:

要想影响所有实体的配置,可以设置全局主键配置

#全局设置主键生成策略

mybatis-plus.global-config.db-config.id-type=auto

package com.ape.springbootmybatisplus.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;/*** @createAuthor Administrator* @currentAroject springboot-mybatis-plus* @createDate 2022-03-20 12:49*/
@Data
public class User {//主键策略@TableId(type = IdType.ASSIGN_ID)//19位值  如果此处什么也不写默认就是这样,使用雪花算法策略private Long id;private String name;private Integer age;private String email;
}

简述雪花算法策略:

雪花算法:分布式ID生成器
雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的主键的有序性。
核心思想:
长度共64bit(一个long型)。
首先是一个符号位,1bit标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0。
41bit时间截(毫秒级),存储的是时间截的差值(当前时间截 - 开始时间截),结果约等于69.73年。
10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID,可以部署在1024个节点)。
12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID)。优点:整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞,并且效率较高。

mybatis-plus 主键自增问题相关推荐

  1. mybatis 实现oracle主键自增的机制

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...

  2. insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成

    点击上方蓝字关注我们 1 01 前言 前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键.于是我就问他,那你们数据库表设置主键自动递增不就得了.他的回答是他 ...

  3. mybatis 主键自增 insert后返回主键

    mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...

  4. Mybatis 中Oracle主键自增设置

    Oracle中不存在mysql那种主键自增的设计 1. 序列+selectKey标签 Oracle新建序列 CREATE SEQUENCE [序列名称] INCREMENT BY 1 /**每次自增1 ...

  5. mybatisplus+oracle,Springboot+MybatisPlus+Oracle实现主键自增的示例代码

    上周周一,本来刚过完周末,高高兴兴,老大突然安排了个活,要在一天内把项目的MySQL数据库换成Oracle数据库,我们都知道这是不可能完成的任务,但是,秉承着"没有困难的工作,只有不努力的打 ...

  6. mybatis-puls 集成oracle 主键自增

    oracle通过mybatis-puls新增数据时,主键自增不同于MySQL添加注解,oracle需要进行配置 1,创建表 2,创建序列 create sequence XXX_SEQ INCREME ...

  7. 【Qt】使用sqlite3数据库时,主键自增和获取自增后的主键的

    创建数据表格,设置主键自增 创建数据库时,启用主键自增加特性 Create table testTable (id INTEGER PRIMARY KEY AUTOINCREMENT,.... 注意事 ...

  8. postgre 没有主键自增ma_PostgreSQL 主键自增解决方案

    因为工作需要,接触到了PostgreSQL,遇到了主键自增的情况 8.1.4. Serial Types 数据类型serial和bigserial不是真正的类型,而只是用于设置唯一标识符列的符号方便( ...

  9. 用tirgger实现主键自增(trigger+sequence)

    用tirgger实现主键自增: create table book (bid number(4) primary key, bname varchar2(20) ) create sequence b ...

最新文章

  1. 实现控制台上的进度条
  2. C#如何得到运行中和杀死运行中的进程?
  3. Python库引用import多种用法及比较
  4. codeforce 1311E. Construct the Binary Tree (构造,就是个模拟)
  5. 【阿里云 CDP 公开课】 第二讲:CDH/HDP 何去何从
  6. 线性表——顺序表的应用
  7. sshpass远程执行脚本_终端-Linux命令之非交互SSH密码验证-Sshpass
  8. 毕业答辩之毕业设计答辩问题有哪些?
  9. http请求中关于SSL server certificate验证的trace细节
  10. python一个字符占几个字节_字符串在Python内部是如何省内存的
  11. 十八、疑案系列之——永远的无头公案
  12. idea 配置 tomcat session 无法活化
  13. 快递是否签收,分享小技巧查询物流查看已签收件
  14. 工业互联网产业链全景图深度分析
  15. 2019年第十届蓝桥杯[Java]
  16. rangeOfString 与containsString
  17. Proteus 创建可以仿真的元件 - Proteus建模技术
  18. 灰帽子python 读书笔记 1
  19. SATA硬盘和IDE硬盘区别及优劣比较
  20. 第十二章 NandFlash驱动移植

热门文章

  1. 当兵的目标和计划_新兵下连时,一定要弄明白这三件事,对新兵及家长来说很有必要...
  2. Life feelings--10--inspiration and inner motivation
  3. 计算机图形和游戏技术专业,宾夕法尼亚大学计算机图形和游戏技术学理学硕士研究生申请要求及申请材料要求清单...
  4. 苹果11是高通基带吗_iPhone11信号成最大问题,不支持5G还是英特尔基带,令人失望...
  5. 全基因组测序 从头测序(de novo sequencing) 重测序(re-sequencing)
  6. php 数组简写形式,php 获取美国50个州的名称、简写对应数组用法示例
  7. 超级干货 :手把手教你学习R语言(附资源链接)
  8. 花半年的时间储备自己
  9. 游戏设计模式阅读笔记11——行为模式(子类沙箱)
  10. MBA-day30 算术 绝对值题型