MyBatis-Plus樂觀鎖插件的用法小結
什么是樂觀鎖:
就是我們每一次操作數(shù)據(jù)后,我們就會更改他的版本號,當另外的線程若想要對該數(shù)據(jù)進行操作,檢查版本號是否與自己獲得的版本號一致,如果不一致,那么我們就會取消該操作。
簡介
說明
本文介紹Mybatis-Plus的樂觀鎖插件的用法。
官網(wǎng)網(wǎng)址
配置樂觀鎖插件
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return mybatisPlusInterceptor;
}
}Entity
版本號的字段上加注解
@Version
private Integer version;說明:
- 支持的數(shù)據(jù)類型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime
- 整數(shù)類型下 newVersion = oldVersion + 1
- newVersion 會回寫到 entity 中
- 僅支持 updateById(id) 與 update(entity, wrapper) 方法
- 在 update(entity, wrapper) 方法下, wrapper 不能復用!!!
測試
MP會把設置進去的版本號當作更新條件,并且版本號+1更新進去。
@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
到此這篇關于MyBatis-Plus樂觀鎖插件的用法的文章就介紹到這了,更多相關MyBatis-Plus樂觀鎖插件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于HTTP協(xié)議實現(xiàn)簡單RPC框架的方法詳解
RPC全名(Remote?Procedure?Call),翻譯過來就是遠程過程調用,本文將為大家介紹如何基于HTTP協(xié)議實現(xiàn)簡單RPC框架,感興趣的小伙伴可以了解一下2023-06-06
解決IDEA springboot"spring-boot-maven-plugin"報紅問題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報紅問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Java中隊列Queue和Deque的區(qū)別與代碼實例
學過數(shù)據(jù)結構的,一定對隊列不陌生,java也實現(xiàn)了隊列,下面這篇文章主要給大家介紹了關于Java中隊列Queue和Deque區(qū)別的相關資料,需要的朋友可以參考下2021-08-08
mybatisplus實現(xiàn)自動創(chuàng)建/更新時間的項目實踐
Mybatis-Plus提供了自動填充功能,可以通過實現(xiàn)MetaObjectHandler接口來實現(xiàn)自動更新時間的功能,本文就來介紹一下mybatisplus實現(xiàn)自動創(chuàng)建/更新時間的項目實踐,感興趣的可以了解下2024-01-01
基于SpringBoot2.0默認使用Redis連接池的配置操作
這篇文章主要介紹了基于SpringBoot2.0默認使用Redis連接池的配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Springboot整合hibernate validator 全局異常處理步驟詳解
本文分步驟給大家介紹Springboot整合hibernate validator 全局異常處理,補呢文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01

