乐观锁,以及在MP中的实现

乐观锁 : 故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,
再次更新值测试。乐观锁可以保证在并发情况下数据的准确性。
乐观锁实现方式:
取出记录时,获取当前 version
更新时,带上这个version
执行更新时, set version = newVersion where version = oldVersion
如果version不对,就更新失败
乐观锁: 1 、先查询,获得版本号 version = 1
-- A
update user set name = "kuangshen" , version = version + 1
where id = 2 and version = 1
-- B 线程抢先完成,这个时候 version = 2 ,会导致 A 修改失败!
update user set name = "kuangshen" , version = version + 1
where id = 2 and version = 1

Mybatis-Plus中的乐观锁插件 。

(1)给数据库中增加version字段

(2)我们实体类加对应的字段

@Version // 乐观锁 Version 注解
private Integer version ;

(3) 注册组件

@EnableTransactionManagement
@Configuration // 配置类
public class MyBatisPlusConfig {
// 注册乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor () {
return new OptimisticLockerInterceptor ();
}
}

版权声明:本文为lqfdjy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。