Mybatis-Plus实现乐观锁配置
乐观锁 主要解决 丢失更新问题
12306抢票问题
多人抢票 只有一人可以得到
第一步
数据库表中添加 version字段
第二步
在User实体类中添加属性并且加上@Version注解
@Version@TableField(fill = FieldFill.INSERT)private Integer version;
自动填充 插入时自带一个version
自动填充参见 Mybatis-Plus字段自动填充_qq_53951760的博客-CSDN博客
this.setFieldValByName("version",1,metaObject);
第三步
自定义乐观锁配置
@Configuration
public class MybatisPlusConfig {/*** 新版*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return mybatisPlusInterceptor;}
}
测试
// 4.乐观锁测试
@Test
public void testOptimisticLocker(){// 根据id来查询数据User user = userMapper.selectById(1497827489618153477L);//修改user.setAge(222);//更新int result = userMapper.updateById(user);System.out.println("result:"+result);
}//结果
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@17092fff] will not be managed by Spring
==> Preparing: UPDATE user SET name=?, age=?, email=?, version=?, create_time=?, update_time=? WHERE id=? AND version=?
==> Parameters: lucy2222(String), 222(Integer), 1221@qq.com(String), 2(Integer), 2022-02-27 16:02:49.0(Timestamp), 2022-02-27 16:09:36.023(Timestamp), 1497827489618153477(Long), 1(Integer)
<== Updates: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@78a515e4]
result:1
结果
数据库表中的version+1
Mybatis-Plus实现乐观锁配置相关推荐
- 配置MyBatis Plus 的乐观锁功能
配置MyBatis Plus 的乐观锁功能 一. 回顾CAS乐观锁 CAS: 二. 配置MyBatis Plus 的乐观锁 (1)数据库:添加version版本号 (2)实体类:添加version版本 ...
- MybatisPlus乐观锁配置
丢失更新问题 两个用户同时操作同一条数据,最后提交的数据会覆盖上一次提交的,这就是丢失更新问题 解决这个问题,有悲观锁(串行)与乐观锁等方法 乐观锁 乐观锁实现线程安全的数据更新,每次更新数据先比较版 ...
- mybatis-plus乐观锁配置
1.定义:定义一个版本号字段version,每次执行修改数据时先取出版本号暂存(旧值),然后执行业务逻辑,在更新时判断此时的版本号是否和一样,一样则更新成功. 2.定义实体类 @Data public ...
- springboot 使用mybatis-plus 配置乐观锁。
-----------------------------官方文档已更新,详细配置请访问:mybatis plus乐观锁插件 进行查看--------------------------------- ...
- MybatisPlus中乐观锁的配置
1.什么是乐观锁? 乐观锁:十分乐观,它总是认为不会出现问题,无论干什么,都不去上锁!如果出现了问题,就重新更新值. 2.什么是悲观锁? 悲观锁:十分悲观,它总是认为会出现问题,无论干什么,都加上锁, ...
- mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
MP特性 公共字段的自动填充功能 自动更新全局属性,比如创建的时间修改的时间,这样就不用每执行一次插入更新操作都带上一个set大大节省了很多效率,从而也避免为了因为时间格式的不统一问题. 为了输出日志 ...
- (13) 悲观锁和乐观锁解决hibernate并发(转)
前言: 做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统.假设 id=1 的这本书库存为 1 ,但是有 2 个人同时来借这本书,此处的逻辑为 Select ...
- mybatisplus乐观锁最新
旧版本的乐观锁配置插件如下: @Configuration @MapperScan("com.zcy.mybatisplus.mapper") @EnableTransaction ...
- mybatis 乐观锁和逻辑删除
本篇介绍easymybatis如配置乐观锁和逻辑删除. 乐观锁 easymybatis提供的乐观锁使用方式跟JPA一样,使用@Version注解来实现.即:数据库增加一个int或long类型字段ver ...
最新文章
- 【python】Series和DataFrame的简单介绍
- C# 系统应用之清除Cookies、IE临时文件、历史记录 转载
- 【分享】怎样学习一门新技术?
- boost::spirit模块实现使用不同的输出语法格式化单个容器类型的测试程序
- 设计模式之Facade(外观)模式
- java 对比度,java批改图片亮度对比度
- 怎样取消Windows 2003 server 意外关机提示
- SQL Server索引怎么用
- java三件套_Java开发人员应该知道的三件事
- 深度学习笔记--多层感知器以及BP算法
- Android 图片异步加载的体会,SoftReference已经不再适用
- ae中心点重置工具_如何使用AE制作文字破碎动画?制作ae破碎文字特效教程分享...
- H264的编码负担约是解码的5-10倍
- MySQL学习笔记(2)
- web服务器性能排名,主流Web服务器性能测试
- iOS Safari阅读模式分析过程
- 9大论坛、多项AI创新成果,Imagination邀您共聚 AIIA2020人工智能开发者大会
- 数据集:UCI【UC Irvine Machine Learning Repository】
- [JZOJ5539] psy
- electron支持开机自启动(注册表写入)