一、使用场景
当要更新一条记录的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新
二、乐观锁实现方式
取出记录时,获取当前version 更新时,带上这个version
执行更新时, set version = newVersion where version = oldVersion
如果version不对,就更新失败
接下来介绍如何在Mybatis-Plus项目中,使用乐观锁:
三、乐观锁实现流程
1:添加 @Version 注解
@Version
private Integer version;
2:创建配置文件
@Configuration
@MapperScan("com.atguigu.demomptest.mapper")
public class MpConfig {
/**
* 乐观锁插件
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
}
3:注册乐观锁插件
在 MybatisPlusConfig 中注册 Bean
/**
* 乐观锁插件
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}