欢迎您的访问
专注于分享最有价值的互联网技术干货

Mybatis-Plus之乐观锁处理讲解(看这篇就够了)

几个T的资料等你来白嫖
双倍快乐
一定要收藏这个宝藏网站防止丢失,资源帮找!!!
  • 目的:当要更新一条记录的时候,希望这条记录没有被别人更新
  • 乐观锁实现方式:
    取出记录时,获取当前version
    更新时,带上这个version
    执行更新时,set version = newVersion where version = oldVersion
    如果version不对,就更新失败
  • 乐观锁

    –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

  • 测试一下MP的乐观锁插件

1.给数据库添加version字段
20210712122703697.png
20210712122704007.png

2.给实体类添加version字段

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

3.注册组件
20210712122704291.png
Interceptor是一个拦截器
4.测试乐观锁(成功):
20210712122704606.png
20210712122704963.png
结果为:
20210712122705043.png
5.测试乐观锁(失败)
20210712122705360.png
结果为:
20210712122705482.png
发现插入的线程执行成功,最后面的没有执行成功,如果没有使用乐观锁的话,执行结果就是为:qkcao1111,就会覆盖之前执行的结果

赞(0) 打赏
版权归原创作者所有,任何形式转载请联系我们:大白菜博客 » Mybatis-Plus之乐观锁处理讲解(看这篇就够了)

评论 抢沙发

9 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏