MyBatis-Plus之CRUD扩展一

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

本文同时参与 「掘力星计划」  ,赢取创作大礼包,挑战创作激励金

插入操作

insert

    //测试插入
    @Test
    public void testInsert(){
        User user = new User();
        user.setName("xxx");
        user.setAge(3);
        user.setEmail("[email protected]");
​
        int result = userMapper.insert(user);//帮我们自动生成id
        System.out.println(result);//受影响的行数
        System.out.println(user);//发现,id会自动生成
    }
复制代码

image.png

数据库插入的id的默认值:全局的唯一id

主键生成策略

默认ID_WORKER全局唯一id

分布式系统唯一id生成: www.cnblogs.com/haoxinyue/p…

雪花算法:

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

主键自增

我们需要配置主键自增

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

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

image.png 3,测试

image.png

其余的源码解释

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

image.png

image.png

 user.setId(6L);//输入id
 @TableId(type = IdType.INPUT )
复制代码

猜你喜欢

转载自juejin.im/post/7017721237681995807