MyBatis-Plus樂(lè)觀鎖插件的用法小結(jié)
什么是樂(lè)觀鎖:
就是我們每一次操作數(shù)據(jù)后,我們就會(huì)更改他的版本號(hào),當(dāng)另外的線程若想要對(duì)該數(shù)據(jù)進(jìn)行操作,檢查版本號(hào)是否與自己獲得的版本號(hào)一致,如果不一致,那么我們就會(huì)取消該操作。
簡(jiǎn)介
說(shuō)明
本文介紹Mybatis-Plus的樂(lè)觀鎖插件的用法。
官網(wǎng)網(wǎng)址
配置樂(lè)觀鎖插件
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return mybatisPlusInterceptor;
}
}Entity
版本號(hào)的字段上加注解
@Version
private Integer version;說(shuō)明:
- 支持的數(shù)據(jù)類(lèi)型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime
- 整數(shù)類(lèi)型下 newVersion = oldVersion + 1
- newVersion 會(huì)回寫(xiě)到 entity 中
- 僅支持 updateById(id) 與 update(entity, wrapper) 方法
- 在 update(entity, wrapper) 方法下, wrapper 不能復(fù)用!!!
測(cè)試
MP會(huì)把設(shè)置進(jìn)去的版本號(hào)當(dāng)作更新條件,并且版本號(hào)+1更新進(jìn)去。
@Test
public void update(){
User user = userMapper.getById(1L);
user.setEmail("Test1111@email.com");
user.setUpdateTime(LocalDateTime.now());
int update = userMapper.updateById(user);
System.out.println(update);
}DEBUG==> Preparing: UPDATE sys_user SET email=?, update_time=?, version=? WHERE id=? AND version=? DEBUG==> Parameters: Test1111@email.com(String), 2019-09-19T16:00:38.149(LocalDateTime), 2(Integer), 1(Long), 1(Integer) DEBUG<== Updates: 1
到此這篇關(guān)于MyBatis-Plus樂(lè)觀鎖插件的用法的文章就介紹到這了,更多相關(guān)MyBatis-Plus樂(lè)觀鎖插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?控制反轉(zhuǎn)和依賴(lài)注入的具體使用
本文主要介紹了Spring?控制反轉(zhuǎn)和依賴(lài)注入,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
基于HTTP協(xié)議實(shí)現(xiàn)簡(jiǎn)單RPC框架的方法詳解
RPC全名(Remote?Procedure?Call),翻譯過(guò)來(lái)就是遠(yuǎn)程過(guò)程調(diào)用,本文將為大家介紹如何基于HTTP協(xié)議實(shí)現(xiàn)簡(jiǎn)單RPC框架,感興趣的小伙伴可以了解一下2023-06-06
springboot實(shí)現(xiàn)訪問(wèn)多個(gè)redis庫(kù)
這篇文章主要介紹了springboot實(shí)現(xiàn)訪問(wèn)多個(gè)redis庫(kù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問(wèn)題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例
學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的,一定對(duì)隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-08-08
mybatisplus實(shí)現(xiàn)自動(dòng)創(chuàng)建/更新時(shí)間的項(xiàng)目實(shí)踐
Mybatis-Plus提供了自動(dòng)填充功能,可以通過(guò)實(shí)現(xiàn)MetaObjectHandler接口來(lái)實(shí)現(xiàn)自動(dòng)更新時(shí)間的功能,本文就來(lái)介紹一下mybatisplus實(shí)現(xiàn)自動(dòng)創(chuàng)建/更新時(shí)間的項(xiàng)目實(shí)踐,感興趣的可以了解下2024-01-01
基于SpringBoot2.0默認(rèn)使用Redis連接池的配置操作
這篇文章主要介紹了基于SpringBoot2.0默認(rèn)使用Redis連接池的配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
Springboot整合hibernate validator 全局異常處理步驟詳解
本文分步驟給大家介紹Springboot整合hibernate validator 全局異常處理,補(bǔ)呢文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01

