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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
    }
}

  

posted @   努力是一种常态  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2022-09-10 Mysql第8天
2022-09-10 闭包第2天
点击右上角即可分享
微信分享提示