MP实战系列(十七)之乐观锁插件
生活随笔
收集整理的這篇文章主要介紹了
MP实战系列(十七)之乐观锁插件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
聲明,目前只是僅僅針對(duì)3.0以下版本,2.0以上版本。
意圖:
當(dāng)要更新一條記錄的時(shí)候,希望這條記錄沒(méi)有被別人更新
樂(lè)觀鎖實(shí)現(xiàn)方式:
取出記錄時(shí),獲取當(dāng)前version 更新時(shí),帶上這個(gè)version 執(zhí)行更新時(shí), set version = yourVersion+1 where version = yourVersion 如果version不對(duì),就更新失敗第一步,配置
SSM框架(Spring+SpringMVC+MyBatis-Plus):
spring-mybatis.xml配置:
SpringBoot配置:
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {return new OptimisticLockerInterceptor(); }第二步,加上注解
public class User {
@Version private Integer version;}
特別說(shuō)明: 僅支持int,Integer,long,Long,Date,Timestamp
測(cè)試代碼:
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;
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的MP实战系列(十七)之乐观锁插件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到牙齿很痛是怎么回事
- 下一篇: View详解(4)