【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数据库才能生效。

你可能感兴趣的:(java,mybatis)