MP实战系列(十七)之乐观锁插件

简介:

声明,目前只是仅仅针对3.0以下版本,2.0以上版本。

意图:

当要更新一条记录的时候,希望这条记录没有被别人更新

乐观锁实现方式:

取出记录时,获取当前version
更新时,带上这个version
执行更新时, set version = yourVersion+1 where version = yourVersion
如果version不对,就更新失败

第一步,配置

SSM框架(Spring+SpringMVC+MyBatis-Plus):

spring-mybatis.xml配置:

SpringBoot配置:

@Bean

public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    return new OptimisticLockerInterceptor();
}

第二步,加上注解

public class User {

@Version
private Integer version;

}

特别说明: 仅支持int,Integer,long,Long,Date,Timestamp

测试代码:

int id = 100;
int version = 2;

User u = new User();
u.setId(id);
u.setVersion(version);

if(userService.updateById(u)){

System.out.println("Update successfully");

}else{

System.out.println("Update failed due to modified by others");

}

示例SQL原理:

update tbl_user set name='update',version=3 where id=100 and version=2;

目录
相关文章
|
存储 前端开发 Java
一篇文章带你搞懂Controller、Service等各层的功能与作用
本文将深入探讨这些controller.service等层的作用与功能,帮助读者更好地理解它们在软件开发中的重要性和运作原理。
5875 1
|
存储 缓存 API
Google Pay支付遇到的问题(上)
Google Pay 无法购买您要的商品 [DF-AA-01] [DF-AA-20] 支付失败、无法支付、购买无效 弹窗提示:我们这边除了点错误,请重试。 支付返回CODE(BillingResponseCode) 无法用于此购买交易 检查付款是否通过 使用 Play 商店应用 使用网络浏览器: 重启设备 更新 Play 商店应用 确保日期和时间正确 如果“自动日期和时间”和“自动时区”关闭 如果打开“自动日期和时间”和“自动时区”
5952 0
Google Pay支付遇到的问题(上)
|
开发工具 git
解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
1090 0
|
域名解析 负载均衡 网络协议
阿里云云解析收费版和免费版有什么不同?域名解析DNS免费收费区别对比
阿里云域名解析DNS收费吗?域名解析DNS免费版和收费版有什么区别?
7694 0
阿里云云解析收费版和免费版有什么不同?域名解析DNS免费收费区别对比
|
存储 JSON NoSQL
MongoDB Compass 的教程
这篇文章提供了MongoDB Compass的基本使用教程,包括如何建立数据库连接、创建和删除数据库、插入和修改文档数据,以及执行聚合查询来分析和排序数据。
5002 0
MongoDB Compass 的教程
|
网络协议 应用服务中间件 网络安全
阿里云免费SSL申请流程(白嫖20张SSL免费证书)2024年新版教程
本文详述了2024年最新的阿里云免费SSL证书申请流程。用户可通过阿里云数字证书管理服务控制台一键申请最多20张免费单域名SSL证书,每张证书有效期为3个月。首先登录控制台,选择“SSL证书管理”下的“个人测试证书”,同意协议并完成购买流程。之后需创建证书、输入域名等信息并进行域名验证。验证方法包括手动DNS验证、域名授权自动化验证或文件验证。完成验证后,等待审核通过即可下载适用于不同服务器类型的SSL证书。请注意,阿里云免费SSL证书到期后不支持续费,需重新申请。了解更多详情,请访问阿里云官方SSL证书页面。
|
JSON 数据格式
Sublime Json 格式化
Sublime Json 格式化
1623 0
|
存储 安全 算法
Android安全性: 如何防止Android应用的逆向工程?
Android安全性: 如何防止Android应用的逆向工程?
785 1
|
存储 Java API
Mac安装jadx并配置环境
Mac安装jadx并配置环境
3392 0
|
Java 编译器
【Java异常】Error:java: Compilation failed: internal java compiler error 的解决方案
【Java异常】Error:java: Compilation failed: internal java compiler error 的解决方案
3923 0

热门文章

最新文章