MyBatisPlus 之日志及主键生成策略02
配置日志
我们所有的
sql
现在是不可见的,我们希望知道它是怎么执行的,所以我们必须要看日志!
配置完毕日志之后,后面的学习就需要注意这个自动生成的
SQL
,你们就会喜欢上
MyBatis-Plus
!
# 配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
日志之后,后面的学习就需要注意这个自动生成的SQL,你们就会喜欢上 MyBatis-Plus!
配置完毕
CRUD扩展
插入操作
Insert
插入
数据库插入的
id
的默认值为:全局的唯一
id
// 测试插入
@Test
public void testInsert(){
User user = new User();
user.setName("狂神说Java");
user.setAge(3);
user.setEmail("24736743@qq.com");
int result = userMapper.insert(user); // 帮我们自动生成id
System.out.println(result); // 受影响的行数
System.out.println(user); // 发现,id会自动回填
}
主键生成策略
默认
ID_WORKER
全局唯一
id
分布式系统唯一
id
生成:
https://www.cnblogs.com/haoxinyue/p/5208136.html
雪花算法:
snowflflake
是
Twitter
开源的分布式
ID
生成算法,结果是一个
long
型的
ID
。其核心思想是:使用
41bit
作为
毫秒数,
10bit
作为机器的
ID
(
5
个
bit
是数据中心,
5
个
bit
的机器
ID
),
12bit
作为毫秒内的流水号(意味
着每个节点在每毫秒可以产生
4096
个
ID
),最后还有一个符号位,永远是
0
。可以保证几乎全球唯
一!
主键自增
我们需要配置主键自增:
1
、实体类字段上
@TableId(type = IdType.AUTO)
2
、数据库字段一定要是自增!
3
、再次测试插入即可!
其与的源码解释
更新操作
所有的
sql
都是自动帮你动态配置的!
public enum IdType {
AUTO(0), // 数据库id自增
NONE(1), // 未设置主键
INPUT(2), // 手动输入
ID_WORKER(3), // 默认的全局唯一id
UUID(4), // 全局唯一id uuid
ID_WORKER_STR(5); //ID_WORKER 字符串表示法
}
笔记内容来自B站狂神说