- 目的:当要更新一条记录的时候,希望这条记录没有被别人更新
- 乐观锁实现方式:
取出记录时,获取当前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字段
2.给实体类添加version字段
@Version//乐观锁的Version注解
private Integer version;
3.注册组件
Interceptor是一个拦截器
4.测试乐观锁(成功):
结果为:
5.测试乐观锁(失败)
结果为:
发现插入的线程执行成功,最后面的没有执行成功,如果没有使用乐观锁的话,执行结果就是为:qkcao1111,就会覆盖之前执行的结果
最新评论
命令: nload
真是个良心站点哇,大公无私,爱了爱了
还可以直接搞一张映射表,存 uid | time | source_index, 第一次直接查对应的 time 选出前100, 第二次直接用 CompleteFuture 去分别用 source_in
干得漂亮,多个朋友堵条路
2021.2.2版本的不适用吧
现在还可以用么
激活码有用,感谢分享
激活码的地址打不开了