首页 > 其他分享 >MyBatisPlus主键生成策略

MyBatisPlus主键生成策略

时间:2023-11-28 15:32:08浏览次数:25  
标签:MyBatisPlus 策略 AUTO 数据库 生成 TableId 主键

@[TOC]

什么是主键生成策略?

在数据库中,每一行数据都需要一个唯一的标识符,这就是主键。主键生成策略决定了如何为新插入的行生成这个唯一标识符。不同的数据库和框架提供了不同的主键生成策略选项。

MyBatis Plus 中的主键生成策略

  1. AUTO:这是默认的策略,根据数据库的不同自动选择合适的主键生成方式。通常使用数据库的自增长主键(如 MySQL 的 AUTO_INCREMENT)。
  2. INPUT:这个策略假定主键值由开发人员手动设置。
  3. ID_WORKER:ID_WORKER 使用了分布式唯一 ID 生成器,可以确保生成的主键在分布式环境下唯一。
  4. UUID:这个策略使用 UUID(Universally Unique Identifier)作为主键,确保了全局唯一性,但可能会占用较多的存储空间。
  5. NONE:这个策略表示不使用任何主键生成策略,需要手动设置主键值。

如何在 MyBatis Plus 中配置主键生成策略

在 MyBatis Plus 中配置主键生成策略非常简单。首先在实体类中使用 @TableId 注解来指定主键字段,然后使用 @TableId 注解的 type 属性来指定主键生成策略。

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    
    // 其他属性和方法...
}

指定主键生成策略为 IdType.AUTO,它会根据数据库自动选择合适的方式生成主键。

标签:MyBatisPlus,策略,AUTO,数据库,生成,TableId,主键
From: https://blog.51cto.com/u_16202095/8602105

相关文章

  • python中一个方法生成的值如何传给另一个方法使用?
    一、问题python中一个方法生成的值如何传给另一个方法使用? 二、回答有3种方式:1.接收方法A的返回值,传给方法B使用2.设置全局变量传递值3.利用pytest的fixture特性传值 第一种方式:接收方法A的返回值,传给方法B使用1importrequests2host="http://66.66.66.66:9000......
  • 带有 on duplicate key update 的批量插入 mybatisPlus
    1packagecom.autewifi.dataaods.common.data.datascope;23importcom.baomidou.mybatisplus.annotation.IdType;4importcom.baomidou.mybatisplus.core.enums.SqlMethod;5importcom.baomidou.mybatisplus.core.injector.AbstractMethod;6importcom......
  • python Matplotlib库:根据excel生成各种柱状图
    我将向大家介绍如何使用Python和一些常见的库来根据Excel数据生成十种不同类型的图表。通过多维度的可视化,我们可以更全面地了解数据中的模式、趋势和关系。无论您是数据分析师、市场营销人员还是研究人员,这些图表将帮助您挖掘数据中更多的信息。1.准备工作 首先,我们需要安装一些......
  • C\C++ 使用RapidJSON库,轻松解析和生成JSON
    简介  RapidJSON是一个高效的C++JSON解析器和生成器。它专注于性能和易用性,使得处理JSON数据变得简单和快速。RapidJSON支持现代的JSON特性,如嵌套对象、数组、Unicode编码和注释。它的API简洁易用,可以轻松解析和生成JSON数据。无论你的项目需要处理大量的JSON数据,还是只需要解析......
  • django 创建model 并迁移生成表 在创建记录的写法流程
    django创建model并迁移生成表在创建记录的写法流程在Django中,创建一个新的模型并迁移生成表的步骤如下:在你的应用的models.py文件中定义模型。例如,我们创建一个名为Person的模型,它有name和age两个字段:fromdjango.dbimportmodelsclassPerson(models.Model):name=m......
  • 关键字 开发-05 读取yaml文件内容动态生成用例
    前言在第一篇文章中,我们讲过了通过钩子函数pytest_collect_file可以收集到yaml格式的用例,并且可以生成测试用例。想要动态生成测试用例,也就是动态生成测试函数,然后pytest收集到test开头的func,执行测试函数。关键代码如下所示:defrun_function(*args,**kwargs):print("测......
  • 最小生成树(Kruskal和Prim算法)
    最小生成树(Kruskal和Prim算法)部分资料来源于:最小生成树(Kruskal算法)_kruskal算法求最小生成树-CSDN博客、【算法】最小生成树——Prim和Kruskal算法-CSDN博客关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vi与vj都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若......
  • Go 自动生成代码工具 一( go-zero 中 goctl rpc 命令代码生成原理)
    总共分为三篇:1.分析`go-zero`中`coctlrpc`通过一个`proto`文件生成一系列文件。2.模仿这个原理,结合`protoc`生成代码的特性,把gin的接口定义,也放入proto文件中,自动生成gin的接口代码。3.自动生成项目中error错误定义文档。(通过go源码自动生成文档)go-zero中goctl......
  • .net core 6 由数据库生成对应实体类
    首先按照网上其他朋友的教程,安装对应程序包 然后在程序包管理器控制台中执行Scaffold-DbContext,总是报错,各种各样的错误,说未引用的程序包之类的。最后找到的解决办法是,在vs的菜单栏中找到视图--终端,然后在下方弹出的“开发者PowerShell”中输入命令 dotnetefdbcontexts......
  • 调用labview生成的dll文件中包含 labview的2维数组作为输出输出时,如何操作
    以前使用python调用labview生成的dll时,如果直接使用labview本身的二维数组,程序就会自己崩溃,也无法使用,但由于二维本质就是一维,所以用的一维加行列可以解决这个问题,绕开了这个labview二维数组的结构但是最近有研究了一下,发现可以解决这个问题,现在记录如下,首先,从网上找到了一......