2021-06-15 SpringBoot学习 乐观锁

乐观锁
解决某些问题,主要解决丢失更新(多个人同时操作一条数据,最后提交的把之前提交的数据覆盖)

解决方案:
1、悲观锁(串行操作)
2、乐观锁(比较当前版本号是否一致,一致就等完成再操作)

乐观锁的具体实现步骤
1、数据库中添加version字段

  ALTER TABLE `user` ADD COLUMN `version` INT

2、对应实体类添加版本号属性

    @Version//代表这是一个乐观锁version注解
    private Integer version;//版本号

3、配置乐观锁插件

@Configuration
@MapperScan("com.aiguigu.demo.mapper")
public class MpConfig {
    //乐观锁插件
    @Bean
    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor () {
        return new OptimisticLockerInnerInterceptor();
    }
}

使用的时候:
1.取出记录时,获取当前version
2.更新的时候带上这个version
3.执行更新时set version = newVersion where version = oldVersion
4.如果version不对,就更新失败

你可能感兴趣的:(2021-06-15 SpringBoot学习 乐观锁)