增删改 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);
    }
 
}

 

 

运行单元测试,添加成功。

posted on 2024-11-25 18:09  努力--坚持  阅读(7)  评论(0编辑  收藏  举报