mybiats-puls-插入测试以及雪花算法

一,测试

/*
* 插入测试
* */
@Test
public void test01() {User user = new User();/** 自动帮我们生成id* */user.setName("kuku");user.setAge(3);user.setEmail("2983394967@qq.com");final int insert = mapper.insert(user);System.out.println(insert);/** 发现id会自动回填* */System.out.println(user);
}

数据库id并没有设置id

二, 什么是雪花算法(数据库插入的id默认值为:全局唯一id

snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心(北京,上海等),5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。具体实现的代码可以参看https://github.com/twitter/snowflake。雪花算法支持的TPS可以达到419万左右(2^22*1000)

三,mybatis-plus提供的主键策略 

AUTO(0),        // 自增,同时需要数据库中也配置自增
NONE(1),		// 该类型为未设置主键类型
INPUT(2),       // 用户输入,和数据库中类型保持一致即可
ASSIGN_ID(3),   // 雪花算法,全局唯一id,数据库中类型必须为数值类型
ASSIGN_UUID(4); // 全局唯一uuid

 说明:在新版的mybatis-plus中,主键策略默认为NONE,也就是使用雪花算法,同时取消了ID_WORKER_STR(5);

user类

在主键上使用@TableId(type = IdType.AUTO),然后根据需要修改type即可

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {@TableId(type = IdType.AUTO)private Long id; // 必须是Long,得是long的包装类才能自动生成private String name;private int age;private String email;
}

也可以使用配置文件进行配置

#配置自增
mybatis-plus.global-config.db-config.id-type=auto

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/614924.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6基础(JavaScript基础)

本文用于检验学习效果,忘记知识就去文末的链接复习 1. ECMAScript介绍 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言…

基于SpringBoot的“汉服文化平台网站”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“汉服文化平台网站”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统功能界面图 用户登录、用…

推荐一款轻量级的hosts文件编辑器(免安装版)

在管理和编辑hosts文件时,一款简单而有效的工具是非常重要的。下面推荐一款免安装版的轻量级hosts文件编辑器,让你轻松管理你的hosts文件。 windows系统默认hosts文件位置 下载地址:https://www.alipan.com/s/8kSns9eAi9f

学习ArkTS -- 常用组件使用

学习ArkTS 使用Deveco studio写ArkTSImage: 图片显示组件1.声明Image组件并设置图片源2. 添加图片属性 Text: 文本显示组件1. 声明Text组件并设置文本内容2. 添加文本属性 TextInput:文本输入框1. 声明TextInput2. 添加属性和事件 Button 组件1. 声明Button组件&…

09 Php学习:超级全局变量

超级全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 PHP 超级全局变量列表: $GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILES$_ENV$_COOKIE$_SESSION $GLOBALS $GLOBALS 是 PHP 中的…

微信ipad协议GO版本 最新不封号

支持A16,62数据号登录,长链接不掉线,稳定不封号。全新支持短信号登陆,并且支持扫码登录。可以获取小程序code、抢购、游戏试玩授权等功能。 以下是对登录和授权的一些方法: - getLoginQRCode (获取登录二维码) - Chec…

SpringCloud、SpringBoot、JDK版本对应关系

SpringCloud与SpringBoot 版本 官网说明:https://spring.io/projects/spring-cloud#overview SpringBoot 与 JDK版本关系 发布说明:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes SpringBoot 3.x不再支持JDK1.…

信号完整性之特性阻抗那些事儿

原文来自微信公众号:工程师看海,与我联系:chunhou0820 看海原创视频教程:《运放秘籍》 大家好,我是工程师看海。 我们经常说控制阻抗,这个阻抗是什么意思呢? 信号在传输线中,是一步…

基于opencv的视觉巡线实现

前言 这段时间在和学弟打软件杯的比赛,有项任务就是机器人的视觉巡线,这虽然不是什么稀奇的事情,但是对于一开始不了解视觉的我来说可以说是很懵了,所以现在就想着和大家分享一下,来看看是如何基于opencv来实现巡线的…

0.1 + 0.2 不等于 0.3 ?这是为什么?一篇讲清楚!!!

0.1 0.2 不等于 0.3 ?这是为什么?一篇讲清楚!!! 分类 编程技术 在很多编程语言中,我们都会发现一个奇怪的现象,就是计算 0.1 0.2,它得到的结果并不是 0.3,比如 C、C、…

高效保护,无粉乳胶手套助您安心工作

在快节奏的现代生活中,我们每天都在与各种细菌、污染物和化学品打交道,因此保护我们的身体健康变得愈发重要。特别是在工作环境中,手部是最容易受到伤害和污染的部位之一。为了提供最佳的保护,优斯特推出了一款高品质的无粉乳胶手…

C语言---顺序表(二)

文章目录 前言1.准备工作2.代码的实现2.1.顺序表的创建、销毁和打印2.2.顺序表的扩容、头插\删、尾插\删2.2.1.扩容2.2.2.尾插2.2.3.头插2.2.3.尾删2.2.4.头删 2.3.指定位置之前插入/删除数据/查找数据2.3.1.指定位置之前插入数据2.3.2.指定位置之前删除数据2.3.3.查找特定数据…