【MyBatisPlus】MyBatisPlus之id生成策略的方法

MyBatisPlus之id生成策略的方法

在使用MyBatisPlus框架进行开发时,我们通常需要为实体类设计主键的生成策略。MyBatisPlus提供了多种主键生成策略,本文将介绍这些策略的用法。

  1. 雪花算法策略
    雪花算法是Twitter公司开源的一个分布式ID生成算法,可以生成有序的、唯一的64位长整型ID。MyBatisPlus已集成了该算法。

1.1 配置

在实体类中,需要为主键字段添加@TableId注解,并指定type属性为IdType.ASSIGN_ID,代码如下:

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

@Data
public class User {
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    // ...
}

1.2 示例

在进行插入操作时,可以不设置主键值,MyBatisPlus会自动使用雪花算法生成主键值,代码如下:

User user = new User();
user.setName("Alice");
user.setAge(23);
userMapper.insert(user);

2. UUID策略

UUID(Universally Unique Identifier)是一种标识符,它可以确保全球范围内的唯一性。MyBatisPlus已集成了该策略。

2.1 配置

在实体类中,需要为主键字段添加@TableId注解,并指定type属性为IdType.ASSIGN_UUID,代码如下:

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

@Data
public class User {
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    // ...
}

2.2 示例

在进行插入操作时,可以不设置主键值,MyBatisPlus会自动使用UUID算法生成主键值,代码如下:

User user = new User();
user.setName("Bob");
user.setAge(25);
userMapper.insert(user);

3. 自增长策略

自增长策略是指使用MySQL数据库自带的AUTO_INCREMENT方式生成主键值。MyBatisPlus已集成了该策略。

3.1 配置

在实体类中,需要为主键字段添加@TableId注解,并指定type属性为IdType.AUTO,代码如下:

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

@Data
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    // ...
}

3.2 示例

在进行插入操作时,可以不设置主键值,MyBatisPlus会自动使用MySQL的AUTO_INCREMENT功能生成主键值,代码如下:

User user = new User();
user.setName("Charlie");
user.setAge(30);
userMapper.insert(user);

总结

本文介绍了MyBatisPlus框架中的三种主键生成策略,即雪花算法、UUID和自增长。使用这些策略,可以为实体类生成唯一、有序的主键值。注意,在使用自增长策略时,需要使用MySQL数据库才能生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值