首页 > 其他分享 > MyBatis-Plus通过注解设置主键自增策略

MyBatis-Plus通过注解设置主键自增策略

时间:2023-08-29 15:35:41浏览次数:33  
标签:IdType 自增 AUTO 增列 TableId Plus type 主键

MySQL数据库

使用自增列(Auto Increment Column)

MySQL 支持自增列,这是一种方便的方式来生成主键值。在 MyBatis-Plus 中,你可以使用 @TableId(type = IdType.AUTO) 注解来指定自增列作为主键生成策略。

首先,确保你的 MySQL 表中已经设置了自增列。例如:

CREATE TABLE your_table_name (
    id INT AUTO_INCREMENT PRIMARY KEY,
    other_columns...
);

然后,在实体类中使用 @TableId(type = IdType.AUTO) 注解来声明使用自增列作为主键生成策略:

import com.baomidou.mybatisplus.annotation.*;
import org.apache.ibatis.annotations.Mapper;

@TableName("your_table_name")
public class YourEntity {
    @TableId(type = IdType.AUTO)  // 使用 AUTO 类型的主键
    private Long id;

    // 其他属性和方法
}

在这种情况下,MyBatis-Plus 会自动处理自增列的主键生成。在插入数据时,MySQL 数据库会自动生成唯一的自增值作为主键。

Oracle数据库

由于在Oracle中没有主键自增的功能,所以要实现只能通过序列。
首先,我们需要在数据库中创建一个序列(Sequence),用于生成主键值:

CREATE SEQUENCE YOUR_SEQUENCE_NAME
  INCREMENT BY 1
  START WITH 1
  MAXVALUE 999999999
  NOCYCLE
  NOCACHE;

接下来,我们可以在实体类中使用 @TableId(type = IdType.INPUT) 注解,表示我们将手动指定主键值:

import com.baomidou.mybatisplus.annotation.*;
import org.apache.ibatis.annotations.Mapper;

@TableName("your_table_name")
@KeySequence(value = "YOUR_CUSTOM_SEQUENCE_NAME")  // 设置自定义序列名
public class YourEntity {
    @TableId(type = IdType.INPUT)  // 使用 INPUT 类型的主键
    private Long id;

    // 其他属性和方法
}

注意

在Orcale对应的实体类中不能使用@TableId(type = IdType.AUTO) 要用INPUT来手动生成主键策略。

标签:IdType,自增,AUTO,增列,TableId,Plus,type,主键
From: https://www.cnblogs.com/Cloong/p/17664913.html

相关文章

  • mybatis plus 3.4以上分页无效问题,limit一直加不上,MybatisPlusInterceptor无效
    解决方案1、已注册@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptor=newMybatisPlusInterceptor();PaginationInnerInterceptorpaginationInnerInterceptor=newPaginationInnerInterceptor(D......
  • 融云 CallPlus SDK 上线!1V1 音视频、远程服务类应用的实现利器
    近期,融云新一代音视频通话场景化SDKCallPlus将正式上线!关注【融云全球互联网通信云】了解更多融云CallPlus完整封装了拨打、振铃、接听、挂断等整套呼叫流程,支持一对一及群组多人音视频通话。在功能上,融云CallPlus以独立后端保障状态统一性和业务扩展性,上新了视频预览,美颜设......
  • 数据库中什么是主键
    在数据库中,主键就像是每个记录的独特标识符,就像每个人都有自己的名字一样。它帮助区分不同的记录,就像名字帮助我们区分不同的人一样。想象一下,你有一个装满了糖果的罐子。为了区分每颗糖果,你会给每颗糖果贴上一个标签,上面写着它的名字或编号。这个标签就像是糖果的主键,确保每颗糖......
  • ruoyi-vue-plus 配置邮箱
    ruoyi-vue-plus配置邮箱......
  • 解锁安全高效办公——私有化部署的WorkPlus即时通讯软件
    在当今信息时代,高效的沟通与协作对于企业的成功至关重要。然而,随着信息技术的发展,保护敏感信息和数据安全也变得越来越重要。为了满足企业对于安全沟通和高效办公的需求,我们隆重推出私有化部署的WorkPlus即时通讯软件,为您的企业提供一站式解决方案。私有化部署的优势:1.完全掌控数......
  • 使用editplus批量修改文件编码
     进行J2EE开发时,经常得拿现成的前端文件,如JS、CS、JSP、html等文件。把这些文件导入到webRoot(或webContent)时经常会出现“集体乱码”的情况(如下图所示),这是因为这些文件的编码格式为ansi编码与eclipse(或myeclipse)中工作空间编码的“gbk”("utf-8")不符。使用编辑器对每个文件进......
  • 赋值运算符,自增自减运算符,关系运算符,短路逻辑运算符,三元运算符
           ......
  • Spring Boot集成Mybatis-plus+hive
    运行环境jdk1.8springboot:2.7.151.在pom.xml文件中加入<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version>......
  • 数据库主键生成策略
    首先明确的一点是,主键是为了区分不同的行记录,所以先抛开其他的因素,主键必须要保证:唯一性(单表或者分库分表的场景下)单表可选的方案有:自增idUUID业务字段,如:手机号、身份证号等等自增id自增主键是单表中很常用的使用方式。阿里Java开发中规定,表必备三字段:id,gmt_create,gmt......
  • 【V4下载】VOCALOID 4.5.2 V4 Plus Alpha编辑器下载/自带BPM Analyzer/Wave Track Tra
    【V4下载】VOCALOID4.5.2V4PlusAlpha编辑器下载/自带BPMAnalyzer/WaveTrackTranscoder支持V5声库体质的Vocaloid4!Onedrive不限速网盘下载链接在下面V4FEPlus原文链接:https://blog.imikufans.fun/index.php/2023/08/27/vxzvvpabjqxzzdbawtt/......