MP乐观锁

MP乐观锁

  • 在mp配置类中添加乐观锁插件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Configuration
    public class MpConfig {

    /**
    * 乐观锁插件
    * @return
    */
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    return new OptimisticLockerInterceptor();
    }
    }
  • 给类上添加version属性

    1
    2
    3
    @Version
    @TableField(fill = FieldFill.INSERT)
    private Integer version;
  • 插入时自动填充

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
    this.setFieldValByName("createTime",new Date(),metaObject);
    this.setFieldValByName("updateTime",new Date(),metaObject);
    this.setFieldValByName("version",1,metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
    this.setFieldValByName("updateTime",new Date(),metaObject);
    }
    }
  • 每次要修改时先查询出要修改的数据,修改后再放回数据库,version值会自动加一


MP乐观锁
http://xwww12.github.io/2022/10/11/数据库/mysql/mybatis-plus/MP乐观锁/
作者
xw
发布于
2022年10月11日
许可协议