首页 > 其他分享 >MyBatisPlus-------id生成策略

MyBatisPlus-------id生成策略

时间:2023-02-18 20:22:37浏览次数:27  
标签:mybatisplus MyBatisPlus private ------- baomidou import com id

不同的表对应不同的id生成策略

日志:自增

购物订单:特殊规则(FQ23324AK443)

外卖单:关联地区日期等信息( 10 04 20200314 34 91)

关系表:可省略id

..........

@TableId  :模型类中用于表示主键的属性定义上方---用来设置当前类中主键属性的生成策略

 

(1)   id自增:@TableId(type = IdType.AUTO)

package com.itheima.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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;
}

(2)存储数据时必须自己指定id,在数据库表中关闭id自增功能,在id上添加:@TableId(type = IdType.INPUT)

package com.itheima.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("tbl_user")
public class User {

    @TableId(type = IdType.INPUT)
    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;
}

(3)雪花算法生成id,在id上添加:@TableId(type = IdType.ASSIGN_ID)

package com.itheima.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("tbl_user")
public class User {

    @TableId(type = IdType.ASSIGN_ID)
    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;
}

若要所有得实体类id都用同一个策略生成,可在配置文件中设置好相应的格式,不必每个类的id属性都添加字段控制

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
    username: root
    password: 130740
    type: com.alibaba.druid.pool.DruidDataSource
  main:
    banner-mode: off

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    banner: false
    db-config:
      id-type: assign_id

实体类名与表明不同也可通过全局配置

package com.itheima.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
//@TableName("tbl_user")
public class User {

//    @TableId(type = IdType.ASSIGN_ID)
    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;
}
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
    username: root
    password: 130740
    type: com.alibaba.druid.pool.DruidDataSource
  main:
    banner-mode: off

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    banner: false
    db-config:
      id-type: assign_id
      table-prefix: tbl_

 

标签:mybatisplus,MyBatisPlus,private,-------,baomidou,import,com,id
From: https://www.cnblogs.com/fxzm/p/17133478.html

相关文章

  • QGridLayout(表格布局)
    (一)使用QGridLayout控件的思路在新建QGridLayout对象之前,应该先将在将使用到的控件进行初始化。1.初始化布局新建QGridLayout之后,在桌面上就会出现一个网格状的布局,这个......
  • 重温 dockerfile & docker-compose
    重温dockerfile&dockerCompose复习dockerfile将应用程序及其需要的系统函数库、环境、配置、依赖,打包常用命令https://docs.docker.com/engine/reference/builder/......
  • 算法刷题-计算某字符出现次数-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • Shell命令-常用操作
    Shell基础1Shell命令的基本格式基本格式command[选项][参数][]表示可选的,也就是可有可无。有些命令不写选项和参数也能执行,有些命令在必要的时候可以附带选项和参......
  • Linux基础 - 解压缩
     tarzcvftd2.tar.gz./testdir/--exclude=df.sh--exclude=a*  #备份时,排除文件和文件目录tar-N'2023-02-1918:00:00'-zcvf/tmp/r.tar.gz/root/   ......
  • 架构漫谈1-4
    第一篇的标题叫做什么是架构,这是一个很基础的问题第一篇中提出架构在Wikipedia上定义是Architecture isboththeprocessandtheproductofplanning,designing,an......
  • List集合-数据结构
    List集合-数据结构数据结构是计算机存储,组织数据的方式.是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者......
  • 计算机的数据算法-内存|顺序表|链表|单链表|双端链表
    内存计算机的作用用来存储和运算二进制的数据问题:计算机如何计算1+2?将1和2的二进制类型的数据加载到计算机的内存中,然后使用寄存器进行数值的运算变量......
  • 今日知识分享2022-2-18
    我要学习ros2相关的语法知识,因此利用Google搜索技巧“学习内容+wikitutorial”,发现ros的officialwebsitedocument,里边有关于ros2的tutorial,以及howtoinstallandque......
  • 【Spring IOC】【五】容器源码解析- 属性填充populateBean
    1 前言好了,我们这篇文章讲解下populateBean,也就是bean的属性填充,并不仅仅是设置值,还有很多事情要做的。比如你的属性值类型转换、表达式解析等,关于属性填充的一些知识,本......