乐观锁
主要适用场景:当要更新一条记录的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新
乐观锁实现方式:
- 取出记录时,获取当前version
- 更新时,带上这个version
- 执行更新时, 先查询版本号,修改后和数据库中得版本号比对,一致就修改
- 如果version不对,就更新失败.
(1)数据库中添加version字段
(2)实体类添加version字段,并在inserFill()方法中初始化version的值
(3)增加乐观锁插件配置类
@EnableTransactionManagement
@Configuration
@MapperScan("com.atguigu.mybatis_plus.mapper")
public class MybatisPlusConfig {
// 乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
}