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;
  • 相关阅读:
    Java OCR tesseract 图像智能字符识别技术
    模板
    模板
    奇怪的haproxy 跳转
    奇怪的haproxy 跳转
    tomcat path配置
    tomcat path配置
    Mongodb 安装迁移
    image.xx.com 通过haproxy 跳转到内部图片服务器
    mysqldump 利用rr隔离实现一致性备份
  • 原文地址:https://www.cnblogs.com/a-small-lyf/p/10343904.html
Copyright © 2011-2022 走看看