Mybatis-Plus插入测试以及雪花算法

Posted 为BUG消得人憔悴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-Plus插入测试以及雪花算法相关的知识,希望对你有一定的参考价值。

Mybatis-Plus插入测试以及雪花算法

1、导入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2、配置文件.YML

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mybatis
    driver-class-name: com.mysql.jdbc.Driver
#配置日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、持久类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class user implements Serializable {
    private Long id;
    private String name;
    private int age;
    private String email;
}

4、mapper接口

@Repository
public interface mapper extends BaseMapper <user> {

}

5、启动类

@MapperScan("com.xys.Mapper")
@SpringBootApplication
public class MybatisPlusApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusApplication.class, args);
    }

}

6、测试类

@Test
void insert(){
    user user=new user();
    user.setName("d");
    user.setAge(13);
    user.setEmail("afg@ad");

    //自动生成id
    //数据库受影响的行数
    int result = mapper.insert(user);
    System.out.println("id===>"+result);
    System.out.println("user====>"+user);
}

7、主键生成策略

默认

默认的是@TableId(type = IdType.ID_WORKER)

雪花算法

snowflake是Twitter开源的分布式ID生成算法,结果是一个ong型的ID。其核心思想是∶使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID ),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个符号位,永远是0。

主键自增

1、实体类字段上:@TableId(type = IdType.AUTO)

2、数据库字段一定要是自增的

其他源码解释

public enum IdType {
    AUTO(0),   //数据库id自增
    NONE(1),   //未设置主键
    INPUT(2),  //手动输入
    ID_WORKER(3),//默认的全局的唯一Id
    UUID(4),//全局唯一id
    ID_WORKER_STR(5);//字符串表示法
}

/未设置主键
INPUT(2), //手动输入
ID_WORKER(3),//默认的全局的唯一Id
UUID(4),//全局唯一id
ID_WORKER_STR(5);//字符串表示法
}


以上是关于Mybatis-Plus插入测试以及雪花算法的主要内容,如果未能解决你的问题,请参考以下文章

关于MyBatis-Plus雪花算法生成id精度丢失问题的处理

关于MyBatis-Plus雪花算法生成id精度丢失问题的处理

关于MyBatis-Plus雪花算法生成id精度丢失问题的处理

MyBatis-Plus--使用雪花算法生成主键ID--使用/分析

开发经验mybatis-plus雪花算法自动生成机器id原理

Mybatis-Plus雪花id的使用以及参数配置详解