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
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(一)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
3467 0
|
移动开发 小程序 JavaScript
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
260 0
|
数据采集 数据挖掘
kettle开发-数据清洗之字符串替换
kettle开发-数据清洗之字符串替换
595 2
|
11月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
669 3
SpringBoot入门 - 添加内存数据库H2
|
3月前
|
消息中间件 SQL 供应链
如何开发供应商管理系统中的库存管理板块(附架构图+流程图+代码参考)
供应商管理系统(SMS)是企业供应链管理的核心工具,通过信息化手段实现从采购、入库、出库到库存盘点的全流程管理。系统以供应商为中心,整合订单、发货、验收、库存等环节,提升供应链协同效率。库存管理作为关键模块,通过入库单、出库单、调拨单和盘点等功能,实现库存数据的实时更新与可视化监控,有效避免缺货或积压风险。结合现代技术如Spring Boot、Vue3、MySQL等,系统具备高可用性与灵活扩展性,助力企业提升库存周转率与运营效率。
|
开发工具 git
解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
864 0
|
搜索推荐
基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(四)
基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(四)
439 0
|
监控 前端开发 NoSQL
基于jeecgboot的flowable复杂会签加用户选择流程实现
基于jeecgboot的flowable复杂会签加用户选择流程实现
362 2
|
存储 弹性计算 固态存储
阿里云服务器配置怎么选择合适?收藏级教程大家参考下
阿里云服务器配置选择涉及CPU、内存、带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型实例,如2核2G3M配置,适合低流量网站。企业用户应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。具体配置需根据实际应用需求来定。
733 0