增删改 Insert Delete Update 操作中的一些问题。
一、主键生成策略
增加的时候主键生成的问题,不同的环境、不同的场景对应的主键生成策略可能是不一样的,比如日志表、购物订单表、外卖单。
主键生成策略设置方法:
示例代码:
package com.it.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;
@Data
//设置表名映射关系
//@TableName("tbl_user")
public class User {
//设置主键生成策略
@TableId(type = IdType.AUTO)
private Long id;
private String name;
@TableField(value = "pwd",select = false)
private String password;
private Integer age;
private String tel;
@TableField(exist = false)
private Integer online;
private Integer deleted;
@Version
private Integer version;
}
主键生成策略介绍:
查看IdType源码:
注意:AUTO 主键生成策略使用数据库ID自增策略,需要设置数据库自增。
INPUT主键生成策略使用,要取消数据库自增策略手动输入。
雪花算法生成id介绍:
雪花算法由占位符,时间戳,机器码,序列号组成,如下图:
二、全局配置
主键生成策略全局配置:
在application.yml中添加如下配置:
# mp日志
mybatis-plus:
global-config:
db-config:
id-type: assign_id
主键生成策略配置:
表名前缀全局配置:
在application.yml中添加如下配置:
# mp配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
banner: false
db-config:
id-type: assign_id
table-prefix: tbl_
表名前缀配置:
三、测试
单元测试代码:
@SpringBootTest
class MybatisplusDmlApplicationTests {
@Autowired
private UserDao userDao;
@Test
void testSave(){
User user = new User();
// user.setId(667L);
user.setName("你是程序员");
user.setPassword("it123456");
user.setAge(12);
user.setTel("4006184000");
userDao.insert(user);
}
}
运行单元测试,添加成功。