MyBatisPlus常用注解

MyBatisPlus常用注解

- @TableName

映射数据库的表名 @TableName(value=“数据库的表名”)

- @TableId

设置主键映射 @TableId(value=“表中的主键字段名” type=IdType.设置主键类型)

	AUTO(0), //自增
    NONE(1), // MP set主键,雪花算法实现
    INPUT(2), // 手动赋值 如果没有手动赋值,数据库则自增赋值
    ASSIGN_ID(3), // MP 分配ID Long Integer String
    ASSIGN_UUID(4), //分配UUID String
    /** @deprecated */
    @Deprecated
    ID_WORKER(3),
    /** @deprecated */
    @Deprecated
    ID_WORKER_STR(3),
    /** @deprecated */
    @Deprecated
    UUID(4);

- @TableFiled

映射非主键字段 @TableFiled(value=“表中的字段名” ,exist = true/false, select =true/false,fill = FieldFill.DEFAULT)
exist 表示该字段是否为数据库字段 一般在VO DTO中使用的比较多
select 表示查询时,选择是否查询该字段
file 数据自动填充 一般使用在创建时间和修改时间

	DEFAULT, //默认
    INSERT, //插入
    UPDATE, //更新
    INSERT_UPDATE; // 更新并插入

这个自动填充需要创建一个自动填充的处理器

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

每当有新的数据插入或者修改都会自动进入这个处理器。

- @Version

乐观锁 处理并发的解决方案
通过version字段,保证数据的统一性,当修改数据时,会进行version的对比,只有当version满足条件时才进行修改操作
– 数据库添加version字段 默认值为1
– 实体类添加属性 version 并添加@Version 注解
– 添加一个配置类

@Configuration
public class MybatisPlusConfig {

    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }

	//分页查询
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

- @EnumValue

通用的枚举类注解,将数据库的字段映射成枚举类型的成员变量

import com.baomidou.mybatisplus.annotation.EnumValue;

public enum SignStatusEnum {

    ONLINE(1,"在线"),
    OFFLINE(0,"离线");

    @EnumValue
    private int code;
    private String msg;

    SignStatusEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}

实体类中的字段

private SignStatusEnum signStatus; //signStatus为数据库中的字段名

application.yml配置文件需要添加

mybatis-plus:
  type-enums-package: com.cn.backstage.enums

- @TableLogic

映射逻辑删除
– 在数据库添加deleted字段 int类型 默认是0
– 在实体类添加注解

@TableLogic
private int deleted

– 在application.yml添加配置

  mybatis-plus:
	  global-config:
	    db-config:
	      logic-delete-value: 1
	      logic-not-delete-value: 0

逻辑删除执行的是更新操作

欢迎各位小伙伴,有问题我们一起探讨

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值