myBatisPlus-添加操作

添加过程

@Test
public void insert() {
    User user = new User();
    user.setName("BNTang");
    user.setAge(23);
    user.setEmail("303158131@qq.com");

    int result = userMapper.insert(user);

    // 影响的行数
    System.out.println(result);
    // iD 自增回填
    System.out.println(user.getId());
}

主键自增需要配置

需要在创建数据表的时候设置主键自增,然后在实体字段中配置,在主键 id 属性上添加 @TableId(type = IdType.AUTO) 注解

主键策略

AUTO

数据库 ID 自增

弊端

分表的话, 每次要得到上一张表的最后一个值

数值
第一张表 0 - 1000
第二张表 1001 - 2000
第三张表 2001 - 3000

UUID

  • 全局唯一 ID
  • 不方便排序

ID_WORKER

全局唯一 ID (idWorker)

mp 自带的策略,生成的是 19 位的整数

雪花算法

SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且 ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解

  • 使用 41bit 做为毫秒数
  • 使用 10bit 做为机器的 id
  • 使用 10bit 做为毫秒内的流水号

ID_WORKER_STR

字符串全局唯一 ID (idWorker 的字符串表示)

NONE

该类型为未设置主键类型

INPUT

  • 用户输入 ID
  • 该类型可以通过自己注册自动填充插件进行填充

设置全局主键生成策略

修改 application.properties

mybatis-plus.global-config.db-config.id-type=auto
posted @ 2021-03-20 10:42  BNTang  阅读(406)  评论(0编辑  收藏  举报