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;

目录
相关文章
|
2月前
|
开发者
flutter:总结所有需要用到的方法与实战 (十六)
本文介绍了Flutter中路由和顶部导航的使用方法,包括简单路由、命名路由、返回及返回根路由的实现。同时,详细讲解了顶部导航的定义与属性设置,并通过实战案例展示了复杂布局、新闻列表和页面制作的思路。最后,还提供了父类向子类传递参数的方法以及如何添加依赖库。
|
7月前
|
JavaScript Java 测试技术
基于Java的视频播放器的设计与实现(源码+lw+部署文档+讲解等)
基于Java的视频播放器的设计与实现(源码+lw+部署文档+讲解等)
99 0
|
SQL XML Java
MyBatis-plus超神用法--一文带你玩转MP
MyBatis-plus超神用法--一文带你玩转MP
358 0
|
7月前
|
存储 XML 缓存
前端知识笔记(三十九)———Base64图片是什么?原理是什么?优缺点是什么?
前端知识笔记(三十九)———Base64图片是什么?原理是什么?优缺点是什么?
136 0
|
Dart 开发工具 Android开发
带你读《深入浅出Dart》二十三、Flutter环境的安装与配置(2)
带你读《深入浅出Dart》二十三、Flutter环境的安装与配置(2)
|
Dart 开发工具 iOS开发
带你读《深入浅出Dart》二十三、Flutter环境的安装与配置(1)
带你读《深入浅出Dart》二十三、Flutter环境的安装与配置(1)
125 0
|
Java 数据库连接 数据库
Mybatis-Plus 进阶开发-自定义乐观锁插件
有的时候我们需要对mybatis-plus的乐观锁插件进行自定义修改。那么其实mybatis 是已经有个默认的实现,我们只需要将其继承并扩展即可。 0. OptimisticLockerInnerInterceptor 介绍 当要更新一条记录的时候,希望这条记录没有被别人更新 乐观锁实现方式: 取出记录时,获取当前 version 更新时,带上这个 version 执行更新时, set version = newVersion where version = oldVersion 如果 version 不对,就更新失败 但是我们也可以根据自己的业务需求实现自定义的乐观锁插件。 Mybati
723 0
|
SQL XML Java
(一)Mybatis-plus(MP)中CRUD操作保姆级笔记
🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
504 0
(一)Mybatis-plus(MP)中CRUD操作保姆级笔记
|
Java 数据库连接 mybatis
MP实战系列(十四)之分页使用
MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了。 MyBatis Plus的资料不算是太多,与MyBatis相比。
1753 0
|
Web App开发 Java 应用服务中间件
【快速上手SpringBoot】盘点盘点入门程序制作的四种方式(有图有代码)(一)
【快速上手SpringBoot】盘点盘点入门程序制作的四种方式(有图有代码)(一)
【快速上手SpringBoot】盘点盘点入门程序制作的四种方式(有图有代码)(一)