MybatisPlus乐观锁

       先讲一个故事。一件商品成本80元,售价100元。某天老板觉得100元太便宜了,就通知小李去涨价50元,但是小李玩游戏去了。然后老板觉的150元太贵了,又通知小王去降价30元。

这个时候小李也想起了老板的吩咐,两个人同时去改变商品的价格。小李先取出商品的价格100元,然后加50,再将150元存入数据库。这个时候小王取出商品的价格100元,降价30元,变成70元也存入数据库,这样小王的操作就完全覆盖了小李的操作,商品现在只卖70元。一分钟过后,卖了1000多件商品,老板亏本了一万多元。

       所以并发无小事,可能稍有不慎,就会给公司带来巨大的损失。

       这个时候可以使用mybatisPlus的乐观锁。

       1.在表中添加一个version的字段

       2需要在实体类上加上@Version注解

       3.配置mybatisPlus的乐观锁的拦截器。

        

@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor optimisticLockerInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

      这个和java中的cas类似,失败后可以重试。效率比较高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值