Mybatis-Puls(2)---配置日志、插入测试及雪花算法

一、配置日志

现在我们的所有sql是不可见的,我们希望知道他是怎么执行的
开发时这是我们必看的,上线时可以去掉,他是浪费时间的

# 配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

再次运行就可查看了日志了.

insert

@Test
    public void testinsert(){
        User user = new User();
        user.setName("神奇阿龙");
        user.setAge(21);
        user.setEmail("2369488791@qq.com");

        int result = usermapper.insert(user);//帮我们自动生成ID
        System.out.println(result);     //受影响行数
        System.out.println(user);     //他会自动回填id

    }

自动回填ID,为什么是这样的ID呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qj8SUwso-1621305143606)(http://47.94.18.14:8080/sqalong/img/sqalongblog/mp3.png)]

## 数据库插入的ID默认值为: 唯一id


二、主键生成策略

默认 ID_WORKER 全局唯一id

分布式系统唯一id生成:https://segmentfault.com/a/1190000015273990

##### 雪花算法:

国外的twitter分布式下ID生成算法
1bit+41bit+10bit+10bit=62bit
高位随机+毫秒数+机器码(数据中心+机器id)+10的流水号
优点:代码实现简单,不占用宽带,数据迁移不受影响,低位趋势递增
缺点:多台服务器时间一定要一样,无序无法保证趋势递增要求

主键自增

我们需要配置自增:

  1. 实体类字段上 @TableId(type = IdType.AUTO)
  2. 数据库字段一定要自增!
  3. 再次测试插入即可

其余源码解释 点击进入 IdType 可查看

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值