MybatisPlus乐观锁插件

意图

  • 当要更新一条记录的时候,希望这条记录没有被别人更新

乐观锁实现方式

  • 取出记录时,获取当前version
  • 更新时,带上这个version
  • 执行更新时, set version = newVersion where version = oldVersion
  • 如果version不对,就更新失败

主要适用场景

  • 商品锁库存
  • 电子券领取
  • 等等

乐观锁插件

  • 集成了MybatisPlus乐观锁插件,直接使用即可 参考:https://mybatis.plus/guide/optimistic-locker-plugin.html#%E4%B8%BB%E8%A6%81%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF

使用步骤

  • 注解实体字段@Version,数据库添加该字段
@Version
private Integer version;
  • 代码逻辑
if(!goodsInfoService.updateById(goodsInfo)){
    throw new RuntimeException("请重新下单");
}

你可能感兴趣的:(java后端,数据库,mysql)