MyBatis-Plus 进阶用法 —— 乐观锁插件

本文介绍了乐观锁和悲观锁的区别,展示了如何在SpringBoot中通过MybatisPlus配置乐观锁插件,并在实际操作中演示了乐观锁在更新数据时的应用。适合大量读取场景,处理并发问题的策略选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引言

    乐观锁 : 很乐观,对任何事情都保持着一个乐观的态度,认为别人不会修改数据,所以不会上锁,只是在更新数据的时候,去判断这条数据有没有被别人修改过。

   悲观锁:很悲观,总是假设最坏的情况,每次去拿数据的时候都认为别人会修改数据,所以在每次拿数据的时候都会上锁。

 如果说大量读取数据操作的时候,适合使用乐观锁。如果冲突较多建议使用悲观锁。

二、实现 

  步骤一 :springboot 方式 ,配置乐观锁插件

package com.qianting.demo.config;

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

/**
 * @author WangYan
 * @date 2021/10/14 10:16
 * MybatisPlus 配置类
 */
@Configuration
public class MybatisPlusConfig {

    /**
     * 乐观锁插件
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

  步骤二:实体类定义 version 字段加上 @vesion 注解

 

 步骤三 : 测试

/**
     * 乐观锁
     */
    @Test
    public void Test1(){
        Offer offer = new Offer();
        offer.setId(1);
        offer.setSal("8000");

        // 需要把之前从数据库读出来的版本号设置进去
        offer.setVersion(2);

        int i = offerMapper.updateById(offer);
        System.out.println(i);
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸航不吃瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值