java并发修改数据,使用乐观锁

java并发修改同一记录时,避免更新丢失,需要加锁。要么在应用层加锁,要么在缓存加锁,要么

在数据库层使用乐观锁,使用 version 作为更新依据。

资金相关的金融敏感信息,使用悲观锁策略,正例:悲观锁遵循一锁二判三更新四释放的原则

在实体类中加上如下注解,由前端统一传更新之前的版本号

java 复制代码
@ApiModelProperty(value = "版本号")
@TableField(value = "VERSION", fill = FieldFill.INSERT, update = "%s+1")
@Version
private Integer version;

在sql执行修改时,sql如下

sql 复制代码
update tablename set version = version+1 where version = oldVersion
相关推荐
区区一散修几秒前
0.IntelliJ IDEA的安装和使用
java·ide·intellij-idea
这周也會开心2 分钟前
多线程与并发-知识总结1
java·多线程·并发
野犬寒鸦3 分钟前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
java·服务器·数据库·分布式·后端·rabbitmq
计算机毕设指导63 分钟前
基于微信小程序的驾校预约管理系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
凌~风4 分钟前
014-计算机操作系统实验报告之C 程序的编写!
c语言·开发语言·实验报告
Seven978 分钟前
剑指offer-64、滑动窗⼝的最⼤值
java
西红市杰出青年10 分钟前
crawl4ai------AsyncPlaywrightCrawlerStrategy使用教程
开发语言·python·架构·正则表达式·pandas
进击的小菜鸡dd10 分钟前
互联网大厂Java面试:微服务、电商场景下的全栈技术问答与解析
java·spring boot·缓存·微服务·消息队列·日志·电商
星河耀银海10 分钟前
C++基础数据类型与变量管理:内存安全与高效代码的基石
java·开发语言·c++
sunnyday042612 分钟前
Spring Boot 应用启动成功后的事件监听与日志输出实践
java·spring boot·后端