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

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

1、导入依赖


    org.projectlombok
    lombok
    true


    mysql
    mysql-connector-java


    com.baomidou
    mybatis-plus-boot-starter
    3.0.5

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、数据库字段一定要是自增的

Mybatis-Plus插入测试以及雪花算法_第1张图片

其他源码解释

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);//字符串表示法
}


你可能感兴趣的