展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

常用注解

  • @TableName
# 方式1
# 如果实体类名称为User,与表名t_user不一致时
# 使用如下方式指定表名
@TableName("t_user")

# 方式2
# 当实体类名称为User,表名称为t_user
# 在application.yml中配置如下
mybatis-plus:
  # 设置MyBatis-Plus的全局配置
  global-config:
    db-config:
      # 设置实体类所对应的表的统一前缀
      table-prefix: t_
  • @TableId
# 在主键id上添加如下注解,表明该属性对应表中的主键
@TableId
private Long id;

# 当实体类中的主键字段与数据库表中的主键id名称不一致时,可以指定value属性
@TableId("uid")
private Long id;

# 查看该注解的type属性,默认为none
# 不指定时为none,mybatis plus使用雪花算法
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableId {
    String value() default "";

    IdType type() default IdType.NONE;
}

# 其他值如下
public enum IdType {
    AUTO(0),
    NONE(1),
    INPUT(2),
    ASSIGN_ID(3),
    ASSIGN_UUID(4);

    private final int key;

    private IdType(int key) {
        this.key = key;
    }

    public int getKey() {
        return this.key;
    }
}

# 方式1
# 如果想设置为主键自增,需设置为如下,同时数据库表的主键也设置为自增
@TableId(value = "uid", type = IdType.AUTO)

# 方式2
# 数据库表中主键设置为自增
# 实体类中主键字段不指定type属性
@TableId("uid")
private Long id;
# application.yml中配置如下
mybatis-plus:
  # 设置MyBatis-Plus的全局配置
  global-config:
    db-config:
      # 设置统一的主键生成策略
      id-type: auto
  • 测试
# 数据库表中主键设置为自增
# 实体类中主键字段不指定type属性
@TableId("uid")
private Long id;
# application.yml中不配置主键生成策略
# 执行添加业务的代码时,同时指定id,这时插入到数据库的id是自己指定的id
  • @TableField
# 情况1
# 实体类属性userName,表中字段user_name
# 时MyBatis-Plus会自动将下划线命名风格转化为驼峰命名风格


# 情况2
# 实体类属性name,表中字段username
# 需要在实体类属性上使用@TableField("username")设置属性所对应的字段名
  • 更新时允许设置为null
@TableField(value = "xxx",fill = FieldFill.UPDATE)
  • @TableLogic
# 数据库中新增1个字段deleted,设置默认值为0
# 实体类中添加属性如下
@TableLogic
private Integer deleted;
# 测试删除功能,真正执行的是修改
UPDATE t_user SET is_deleted=1 WHERE id=? AND is_deleted=0
# 测试查询功能,被逻辑删除的数据默认不会被查询
SELECT id,username AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0
posted @ 2022-07-07 11:21  DogLeftover  阅读(25)  评论(0编辑  收藏  举报