zoukankan      html  css  js  c++  java
  • mybatisplus乐观锁

    乐观锁插件

    1) com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor  注册乐观锁插件

    2) 如果想实现如下需求: 当要更新一条记录的时候,希望这条记录没有被别人更新,确保当前只有一个人在操作

    3) 乐观锁的实现原理:

    取出记录时,获取当前 version 2

    更新时,带上这个 version 2

    执行更新时, set version = yourVersion+1 where version = yourVersion

    如果 version 不对,就更新失败

    4) @Version 用于注解实体字段,必须要有,数据库中也应有对应的字段

     

    @RunWith(value = SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "classpath:applicationContext.xml")
    public class LeGuanLock {
    
        @Autowired
        private EmployeeMapper mapper;
        @Test
        public void testName() throws Exception {
            /**
             * UPDATE tbl_employee SET last_name=?, gender=?,
             *  age=?, version=? WHERE id=?  and version=? 
             */
            
            //更新操作  假设这个实体类是我们要更新到数据库的数据
            Employee employee = new Employee();
            employee.setId(4);
            employee.setLastName("乐观锁");
            employee.setGender("1");
            employee.setAge(29);
            /*
             * 添加@Version注解字段
             * spring配置文件中注册乐观锁插件
             * 假如有人手速比我们快,先更新,这时version不是2了,假设是3
             * 更新就会失败
             */
            employee.setVersion(2);
            Integer r = mapper.updateById(employee);
            System.out.println(r);
        }
    }

    实体类中

        @Version
        private Integer version;
  • 相关阅读:
    Oracle:解锁scott用户及设置密码
    js生成条形码
    返回头部效果
    密码强度
    事件委托小效果
    圆形导航效果
    进度条效果
    标题跟随效果
    随机抽人小效果
    点击创建效果
  • 原文地址:https://www.cnblogs.com/a-small-lyf/p/10343904.html
Copyright © 2011-2022 走看看