首页 > 其他分享 >mybatisplus中设置乐观锁,首先需要在表结构中添加一个字段表示乐观锁,之后再domain中对应的字段中添加上注解@Version,之后需要添加乐观锁的拦截器,然后在测试方法中进行测试

mybatisplus中设置乐观锁,首先需要在表结构中添加一个字段表示乐观锁,之后再domain中对应的字段中添加上注解@Version,之后需要添加乐观锁的拦截器,然后在测试方法中进行测试

时间:2023-09-10 22:11:33浏览次数:36  
标签:拦截器 mybatisplus private 乐观 hh 添加 user import com

2023-09-10

version字段表示乐观锁

 在表结构中添加一个字段表示乐观锁

package com.hh.domain;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-10 21:34:29
 */
@Data
@TableName(value = "tbl_user")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String phone;

    @TableLogic(value = "0",delval = "1")
    private Integer deleted;
    @Version
    private Integer version;

}

MpConfig

package com.hh.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-10 18:07:25
 */
@Configuration
public class MpConfig {

    @Bean
    public MybatisPlusInterceptor mpInterceptor(){
        MybatisPlusInterceptor mp = new MybatisPlusInterceptor();
        mp.addInnerInterceptor(new PaginationInnerInterceptor());
        mp.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mp;
    }
}

TestUser

package com.hh.dao;

import com.hh.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-10 21:41:44
 */
@SpringBootTest
public class TestUser {
    @Autowired
    private UserDao userDao;

   //方式一
    @Test
    public void testUpdate(){
        User user = new User();
        user.setId(1L);
        user.setName("wahaha");
        user.setVersion(1);
        userDao.updateById(user);
    }
   //方式二
    @Test
    public void testUpdate2(){
        User user = userDao.selectById(1l);
        user.setName("wawawa");
        userDao.updateById(user);
    }
}

  

标签:拦截器,mybatisplus,private,乐观,hh,添加,user,import,com
From: https://www.cnblogs.com/isDaHua/p/17692114.html

相关文章

  • 相应拦截器----关注500和401
    关注相应码,不同的码对应不同的错误200没问题401说明没权限或者登录已经过期5开头的可能是后端代码出现问题了请求超时请求超时定义的毫秒来测把自己踢出去,提示登录已超时,然后报错401......
  • mybatis-plus中添加的依赖,使用的方法,分页查询中添加的拦截器
    2023-09-10mybatis-plus中添加的依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency>使用的......
  • 1780_添加鼠标右键空白打开命令窗功能
    全部学习汇总:GitHub-GreyZhang/windows_skills:someskillswhenusingwindowssystem.经常执行各种脚本,常常需要切换到命令窗口中输入相关的命令。从开始位置打开cmd然后切换目录是个很糟糕的选择,费时费力。其实Windows7以及Windows10的系统提供了一个相对快捷的功能,那就是......
  • 系统熵增是怎么产生的?————数据对象模型里添加属性欠思考
    熵增定律指出,在没有外力作用下的封闭系统中,熵(或混乱度)总是增加的。就是说,任何封闭系统中、在没有外力作用下,都会陷入混乱。屋子不收拾会变乱;人不自律会懒散;生活不规律或无节制,人就会出现健康问题;同样,对于我们的信息系统,一旦缺乏规范和管控,就会越来越难于迭代和维护。这些例子......
  • Spartacus 如何动态将 SmartEdit attribute 添加到 DOM 里,单步调试
    从Spartacus发起的basesiteocc请求的response获取当前site的数据:从CMSpage的response结果里得到的properties:使用renderer往DOM元素上添加attribute:在这个DynamicAttributeService里设置断点。Angular是一种流行的前端框架,它提供了一套强大的工具......
  • 9.9续8.31java添加图片
    JLabel管理区域:图片,文字API帮助文档:方法的用法宽高(单位:像素),边框 将图片文件夹粘贴到idea当前模块(最大)下 Imagelcon图片对象:ImageIcon对象名=newImageIcon(图片地址);JLabel对象名=newJLabel(图片对象名);  //管理容器的创建add(管理对象名);  //位置确定后再调用......
  • 通过feeds添加新设备的支持
    打包一个新的平台构建目标并将其无缝集成到构建过程这或许是我找到的最有用的一个帖子了。我一直是主线openwrt的支持者,三大系统, leanlienolimmortalwrt各有千秋,但是源码支持比官方主线还是差一些,又各玩花活。但是从我玩mt7621开始,就一直是希望使用主线代码编译固件,外挂平......
  • 登录拦截器校验JWT
    importcom.alibaba.csp.sentinel.util.StringUtil;importcom.xtw.enums.BizCodeEnum;importcom.xtw.model.LoginUser;importcom.xtw.util.CommonUtil;importcom.xtw.util.JWTUtil;importcom.xtw.util.JsonData;importio.jsonwebtoken.Claims;importorg.springf......
  • 2.11 PE结构:添加新的节区
    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中,可执行文件可以更好地管理和区分不同类型的数据,并为运行时提供必要的信息和功能。节的......
  • 2.11 PE结构:添加新的节区
    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中,可执行文件可以更好地管理和区分不同类型的数据,并为运行时提供必要的信息和功能。节的......