• 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();
          } 
      }
      
    记得快乐
  • 相关阅读:
    如何进行有效沟通避免出现误会
    如何进行有效沟通
    怎样提高自己的团队合作能力
    javaScript简介
    css文本格式详解
    css简介及相关概念
    WebGL10---3D模型的加载与使用
    Canvas绘图与动画详解
    Canvas绘制时钟
    WebGL9----将canvas作为纹理,将动画作为纹理(2)
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13895945.html
Copyright © 2020-2023  润新知