MybatisPlus实现乐观锁

本文介绍了乐观锁的概念,用于解决数据库的丢失更新问题,对比了悲观锁的缺点。通过MybatisPlus,文章详细展示了如何实现乐观锁:增加version字段,实体类中加入version属性,使用@Version注解,以及配置乐观锁插件的步骤。

首先先介绍一下乐观锁与悲观锁。
乐观锁主要用来解决丢失更新问题
所谓的丢失更新问题就是当一条数据同时被两个人拿到进行操作时,第一个人将数据实现了更新,紧接着第二个人拿着的数据看起来还是旧数据,实则已经被修改过了,第二个人对该数据再次进行修改。倘若两个人修改的数据不一样,第一个人就会一直以为自己已经修改了数据,并运用着自己以为改了但是被另一个人给改掉而自己却不知道的数据,实际运用场景中可能会引发较大的问题。

运用悲观锁解决问题可以用synchronized或者lock进行解决,但是带来的问题就是当一个人在操作的时候,别人操作不了,实际运用中并不常见,就好像你想在某网站看电影,然后发现里面有个人在看进不去,要等他不看了,你才能看,这时候你就不会想等着他出来再看了。所以悲观锁也就串行锁。
总结:影响效率、扰乱兴致、实际开发基本不用。

运用乐观锁解决,运用了版本号控制,给需要操作的数据加个属性version,当我们取出记录想要操作同时获取version;更新的时候会带上这个version,比较新的version和原有的version是不是一样,一样的version才进行更新操作,更新完成后,version就会+1,这时候另外一个拿到数据想要更新的人,在比较version那里就会不同从而更新失败。

运用MybatisPlus实现乐观锁
1、在数据库表加上 version 字段
2、在实体类加上version
3、加上注解@version
4、写一个配置类配置乐观锁插件

@Configuration

public class MyConfig {
//乐观锁的插件
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值