乐观锁
解决某些问题,主要解决丢失更新(多个人同时操作一条数据,最后提交的把之前提交的数据覆盖)
解决方案:
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不对,就更新失败
网友评论