【學習筆記】Mybatis-Plus(四):MP中內置的插件

內置插件

目前MP已經存在的內部插件包括如下:

插件類名作用
PaginationInnerInterceptor分頁插件。可以代替以前的PageHelper
OptimisticLockerInnerInterceptor樂觀鎖插件。用于冪等性操作,采用版本更新記錄
DynamicTableNameInnerInterceptor動態表名
TenantLineInnerInterceptor多租戶
IllegalSQLInnerInterceptorsql 性能規范
BlockAttackInnerInterceptor防止全表更新與刪除

分頁插件【PaginationInnerInterceptor】

1.作用

用來支持分頁查詢。

2.支持的數據庫

mysql,oracle,db2,h2,hsql,sqlite,postgresql,sqlserver等幾乎市面上所有常用的數據庫。

3.插件使用

  • 添加配置類

    @Configuration 
    public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } 
    }
    
  • 使用代碼

    @Test 
    public void testPage(){ //設置分頁參數 Page<User> page = new Page<>(1, 5); userMapper.selectPage(page, null); //獲取分頁數據 List<User> list = page.getRecords(); list.forEach(System.out::println); System.out.println("當前頁:"+page.getCurrent()); System.out.println("每頁顯示的條數:"+page.getSize()); System.out.println("總記錄數:"+page.getTotal()); System.out.println("總頁數:"+page.getPages()); System.out.println("是否有上一頁:"+page.hasPrevious()); System.out.println("是否有下一頁:"+page.hasNext()); 
    }
    

樂觀鎖【OptimisticLockerInnerInterceptor】

樂觀鎖也稱為無鎖。更新時,通過加入版本號來進行更新。用來防止第二類丟失更新問題。

第二類丟失更新問題可以參考:3.springboot事務-4種隔離級別

1.配置類修改

@Configuration 
public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { //添加分頁插件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //添加樂觀鎖插件 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } 
}

2.需要修改實體類

@Data 
public class Product { private Long id; private String name; private Integer price; @Version private Integer version; 
}

這個被@Version標識的字段就是版本,當然數據庫中的字段不一定叫version。總之在更新的時候,sql語句會自動加上這個版本的條件。

其他內置插件

其他內置的插件,自行通過官網進行了解:https://baomidou.com/pages/2976a3/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42658.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Rust】Cargo介紹

一、Cargo簡介 Cargo 是Rust語言的包管理工具&#xff0c;它幫助我們管理我們項目的依賴。做js開發的同學應該了解nodejs的包管理工具npm&#xff0c;Cargo和npm做的事情是一樣的。C和C的同學可能對這個就比較陌生了&#xff0c;C/C語言沒有統一的依賴管理工具&#xff0c;各個…

Spring中常見知識點及使用

Spring Framework 是 Java 生態系統中最流行的開源框架之一&#xff0c;它提供了一系列強大的功能&#xff0c;用于構建企業級應用。以下是一些常見的 Spring 知識點及其使用方法&#xff1a; 1. 依賴注入&#xff08;Dependency Injection&#xff09; 依賴注入是 Spring 的…

【SpringCloud應用框架】Nacos集群架構說明

第六章 Spring Cloud Alibaba Nacos之集群架構說明 文章目錄 前言一、Nacos支持三種部署模式二、集群部署說明三、預備環境 前言 到目前為止&#xff0c;已經完成了對Nacos的一些基本使用和配置&#xff0c;接下來還需要了解一個非常重要的點&#xff0c;就是Nacos的集群相關的…

【芯片制造】【問題整理】明場檢測和暗場檢測

背景&#xff1a; 什么是明場檢測和暗場檢測 主要功能&#xff1a; 1、在明場檢測中&#xff0c;光源直接照射到樣品表面&#xff0c;透射光或反射光被收集并成像。樣品上的顆粒、劃痕、凹坑會改變光的反射和透射&#xff0c;形成對比&#xff0c;能夠快速掃描大面積樣品。 2、…

SAP - 初識

人過三十不學藝&#xff1b;活到老學到老。。。。。。 怎么說都有理&#xff0c;說不如做 低頭做事&#xff0c;抬頭看天 先做&#xff0c;至少了解下是個什么&#xff1f; 1. SAP是什么 https://www.sap.cn/ -- 思愛普中國 https://www.sap.cn/about/wha…

金斗云 HKMP智慧商業軟件 任意用戶創建漏洞復現

0x01 產品簡介 金斗云智慧商業軟件是一款功能強大、易于使用的智慧管理系統,通過智能化的管理工具,幫助企業實現高效經營、優化流程、降低成本,并提升客戶體驗。無論是珠寶門店、4S店還是其他零售、服務行業,金斗云都能提供量身定制的解決方案,助力企業實現數字化轉型和智…

無人機遙控器指令加密方法

遙控信息的安全問題是無人機遙控系統設計和任務實施過程中最重要的問題之一。然而日益發展的電子偵察和電子對抗技術&#xff0c;使第三方可以截獲已方所發送的遙控指令&#xff0c;分析和竊取遙控信息的內容&#xff0c;從而偽造遙控信息&#xff0c;對己方無人機構成嚴重威脅…

12.x86游戲實戰-匯編指令and or not

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;11.x86游戲實戰-匯編指令add sub inc dec and指令是與的意思 or指令是或的意思 …

MUX VLAN實現二層流量的彈性管控

一、模擬場景&#xff0c;企業有一臺服務器&#xff0c;部門A&#xff0c;部門B&#xff0c;訪客 二、要求&#xff1a;三者都可以訪問服務器&#xff0c;部門A和B可以進行部門內部通信&#xff0c;A和B不可以通信&#xff0c;訪客只能訪問服務器 三、拓撲如下圖 四、配置流程…

計算機網絡編程和并發的知識

OSI七層協議 OSI&#xff08;Open Systems Interconnection&#xff09;模型是一個七層的網絡通信模型&#xff0c;用于標準化不同層級的網絡通信。從下到上分別是&#xff1a; 物理層&#xff08;Physical Layer&#xff09;&#xff1a;負責在物理媒介上傳輸原始的比特流。…

springcloud 面試經常被問問題

Spring Cloud 是一個基于 Spring Boot 的微服務架構解決方案&#xff0c;包含了許多用于構建和管理微服務的工具和框架。在面試中&#xff0c;與 Spring Cloud 相關的問題通常會涉及其核心概念、組件、常用模式和解決方案。以下是一些在 Spring Cloud 面試中經常被問到的問題及…

Linux系統(Centos)下MySQL數據庫中文亂碼問題解決

問題描述&#xff1a;在進行數據庫使用過程中&#xff0c;數據庫里的數據中文都顯示亂碼。操作數據庫的時候&#xff0c;會出現中文亂碼問題。 解決方法如下&#xff1a; 第一步&#xff1a;打開虛擬機進入系統&#xff0c;啟動MySQL。 第二步&#xff1a;連接登錄MySQL輸入…

Java面試題系列 - 第4天

題目&#xff1a;深入理解Java泛型與類型擦除 背景說明&#xff1a;Java泛型是Java SE 5引入的一種新特性&#xff0c;它允許在編譯時檢查類型安全&#xff0c;并且所有的強制轉換都是自動和隱式的&#xff0c;提高了代碼的重用率。然而&#xff0c;Java泛型的實現背后有一個重…

執行力不足是因為選擇模糊

選擇模糊&#xff1a;執行力不足的根源 選擇模糊是指在面對多個選項時&#xff0c;缺乏明確的目標和方向。這種模糊感會導致猶豫不決&#xff0c;進而影響我們的執行力。 選擇模糊的表現&#xff1a; 目標不明確&#xff0c;不知道應該做什么。優先級混亂&#xff0c;不清楚…

Docker-12 Docker常用命令

一、查看docker版本信息 docker version # 查看Docker版本信息二、啟動/停止docker 服務 systemctl start docker # 啟動 docker 服務 systemctl stop docker # 停止 docker 服務三、鏡像命令 docker images # 查看鏡像 docker search 鏡像名稱 # 搜索鏡像…

分布式技術棧、微服務架構 區分

1.分布式技術棧 這些技術棧都是為了更好的開發分布式架構的項目。 &#xff08;大營銷平臺的系統框架如下圖&#xff0c;擴展的分布式技術棧&#xff09; &#xff08;1&#xff09;Dubbo——分布式技術棧 DubboNacos注冊中心是應用可以分布式部署&#xff0c;并且提供RPC接…

BOM和DOM

關于DOM、BOM和diff算法 瀏覽器對象模型&#xff08;Browser Object Model&#xff0c;簡稱BOM&#xff09;和文檔對象模型&#xff08;Document Object Model&#xff0c;簡稱DOM&#xff09;是Web開發中的兩個核心概念&#xff0c;它們都與瀏覽器和網頁的交互有關。以下是BOM…

Codeforces Round 955 E. Number of k-good subarrays【分治、記憶化】

E. Number of k-good subarrays 題意 定義 b i t ( x ) bit(x) bit(x) 為 x x x 的二進制表示下 1 1 1 的數量 一個數組的子段被稱為 k ? g o o d k-good k?good 的當且僅當&#xff1a;對于這個子段內的每個數 x x x&#xff0c;都有 b i t ( x ) ≤ k bit(x) \leq k…

鴻蒙開發管理:【@ohos.account.distributedAccount (分布式帳號管理)】

分布式帳號管理 本模塊提供管理分布式帳號的一些基礎功能&#xff0c;主要包括查詢和更新帳號登錄狀態。 說明&#xff1a; 本模塊首批接口從API version 7開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口的起始版本。開發前請熟悉鴻蒙開發指導文檔&#xff…

自動化設備上位機設計 四

目錄 一 設計原型 二 后臺代碼 一 設計原型 二 后臺代碼 using SimpleTCP; using SqlSugar; using System.Text;namespace 自動化上位機設計 {public partial class Form1 : Form{SqlHelper sqlHelper new SqlHelper();SqlSugarClient dbContent null;bool IsRun false;i…