zoukankan      html  css  js  c++  java
  • mybatis-plus 乐观锁

    作用:保护数据安全,多线程下加锁

    过程:

    1、先查询,获取当前的版本号

    2、若版本号,不对则更新失败

    使用

    1、在数据库中添加version 字段

    2、实现类

    package com.wt.pojo;
    
    import com.baomidou.mybatisplus.annotation.*;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.util.Date;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
        @Version
        private Integer version;
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    }

    3、新建配置类

    package com.wt.config;
    
    import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    
    @MapperScan("com.wt.mapper")
    @EnableTransactionManagement //
    @Configuration // 配置类
    public class MyBatisPlusConfig {
       @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){ return new OptimisticLockerInterceptor(); } }

    4、测试

    @Test
    // 乐观锁,模拟多线程, user1 更新失败, user2 更新成功
    public void testVersionLock(){
        // 1. 查询用户信息
        User user1 = userMapper.selectById(1);
        // 2.修改用户信息
        user1.setId(1L);
        user1.setName("ajax1");
    
        User user2 = userMapper.selectById(1);
        user2.setId(1L);
        user2.setName("ajax22");
    
        userMapper.updateById(user2);
        userMapper.updateById(user1);
    }
  • 相关阅读:
    javascript类型系统——日期Date对象
    javascript类型系统——undefined和null
    javascript运算符语法概述
    javascript运算符
    javascript语句——表达式语句、块语句、空语句和声明语句
    javascript语句
    javascript中的数据类型转换
    javascript类型系统
    Sqli-labs Less-21 cookie注入 base64编码 updatexml()报错注入
    Sqli-labs Less-20 cookie注入 extractvalue()报错注入
  • 原文地址:https://www.cnblogs.com/wt7018/p/13354509.html
Copyright © 2011-2022 走看看