• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

mybatisplus乐观锁

mybatisplus乐观锁

乐观锁 : 故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,再次更新值测试

悲观锁:故名思意十分悲观,它总是认为总是出现问题,无论干什么都会上锁!再去操作!

乐观锁实现机制:

  • 取出记录时,获取当前 version
  • 更新时,带上这个version
  • 执行更新时, set version = newVersion where version = oldVersion
  • 如果version不对,就更新失败
乐观锁:1、先查询,获得版本号 version = 1 
-- 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

mybatisplus乐观锁实现案例

  • 给数据库增加version字段

  • 实体类加对应字段

    @Version //乐观锁Version注解 
    private Integer version;
    
  • 编写配置类,注册组件

    @MapperScan("com.kuang.mapper")// 扫描我们的 mapper 文件夹
    @EnableTransactionManagement //开启事务控制
    @Configuration // 配置类 
    public class MyBatisPlusConfig { 
        // 注册乐观锁插件 
        @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() {
            return new OptimisticLockerInterceptor();
        } 
    }
    
记得快乐
posted @ 2020-10-29 11:48  Y-wee  阅读(296)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3