LiuShuaiDong:Mybatis-plus之乐观锁

乐观锁:当用户对数据表里的数据进行修改时,会与数据表的version版本号进行比较,当version版本号与数据表版本号一致时,可以进行修改。否则认为这不是最新的一次修改,别人已经修改过了。

应用实例:当票务系统仅剩一张票时,所有人会抢这一张票。张三抢这个票,他的version号与数据表version一致,故他可以支付成功,支付成功后数据表的version号会更新。其他人购买时,version版本号和数据表的version号不一致,所以购买失败。

使用步骤:

1、给数据表增加version字段作为版本号(version最好设置默认为1,当version为null时乐观锁不起作用)。

        

2、给实体类增加version属性作为版本号,并用@Version注解标注

         

 

3、引入乐观锁插件,在mybatis-plus官网中复制代码到配置类中

         

@Configuration
@MapperScan("com.lls.mybatisplus.mappers")
public class ProConfig {

    
    //乐观锁插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

4、测试乐观锁(要先查询数据再更新数据,不然体现不了乐观锁,其次当version为null时发现乐观锁失效,所以在数据库中最好给个默认值为1

@SpringBootTest
class MybatisPlusApplicationTests {

    @Autowired
    UserMapper userMapper;

    @Test
    void contextLoads() {
        User users = userMapper.selectById(13);
        System.out.println(users);


        users.setUsername("lld");
        users.setPassword("6666");
        userMapper.updateById(users);

    }
}

5、运行前后对比

前:

后:

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值