github的pageHelper分頁和手動分頁

来源:https://www.cnblogs.com/CarlJohnson9527/archive/2023/03/29/17269922.html
-Advertisement-
Play Games

JavaSE 運算符 算術運算符:+,-,*,/,%,++(自增),--(自減) i++:先用後+1;++i:先+1後用 賦值運算符:= 擴展賦值運算符:+=,-=,*=,/= a+=b >a=a+b: ​ 可讀性差,但是編譯效率高,且會自動進行類型轉換; ​ 當ab為基本數據類型時,a+b和b+a ...


java中各種常用分頁插件:

  1. MyBatis分頁插件:MyBatis提供了一種分頁插件,可以通過配置實現分頁查詢。使用MyBatis分頁插件需要在配置文件中添加插件配置。

  2. PageHelper:PageHelper是一個開源的MyBatis分頁插件,可以通過簡單的配置實現分頁查詢。它支持MySQL、Oracle、PostgreSQL、SQL Server等資料庫。

  3. JPA分頁插件:JPA提供了一種分頁插件,可以通過配置實現分頁查詢。使用JPA分頁插件需要在配置文件中添加插件配置。

這些分頁的核心原理都是大相徑庭,

舉例sql為:select name from students。如果是mysql分頁就是select name from students limit 0,10 java中的分頁插件操作技巧是 select * from (java類中創建的SQL語句) limit x,y;其中的x和y就是前端傳給後端的pageNum和pageSize,只是插件jar包把其中的複雜性都封裝了,但是原理都是這樣的。這樣的分頁是針對簡單的sql且都寫在一個sql中。

這樣進行分頁,但是在常用的代碼中有一個小坑,如下這樣的分頁是不生效的:

Controller層:

 

 

 impl層:

 

 

 

 

上面的每個userMapper都對應一個xml中的sql,這樣是不行的,因為這樣操作就成了 select * from (select * from user a   select * from user b) limit 0,10

這樣有了兩個並行的sql,是無法limit,所以會失敗,

如果要生效,如果上面getUserRoleListByDeptId的方法是下麵這樣的

 

 

 那就可以分頁成功。

 

或者進行手動分頁,對所有的都生效:

 

 

 

    Integer pageNum = page;
Integer pageSize = page_size; // 每頁顯示的條數
List<UserRoleListVO> userList = userService.findUserNamesByResourceId(companyOrProjectId, isCompany,nameOrphone,roleId);
int totalSize = userList.size(); // 總條數
int totalPage = (totalSize + pageSize - 1) / pageSize; // 總頁數
int startIndex = (pageNum - 1) * pageSize; // 起始索引位置

List<UserRoleListVO> pageList = new ArrayList<>();
if (startIndex < totalSize) {
int endIndex = Math.min(startIndex + pageSize, totalSize);
pageList = userList.subList(startIndex, endIndex);
}
return R.ok(pageList, totalSize);
代碼帖出來了,粘貼可用。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對象樹管理 個人經驗總結,如有錯誤或遺漏,歡迎各位大佬指正 :) @ 設置父對象的作用 眾所周知,Qt中,有為對象設置父對象的方法——setParent。 而設置父對象的作用主要有,在父對象析構的時候,會自動去析構其子對象。如果是一個視窗對象,如果其父對象設置了樣式表(Style Sheet),子對 ...
  • 終於在2023/3/29日,黑馬程式員旗下的ssm框架視頻看完了,也是總結了1萬多字的筆記,把黑馬的和自己的整合了一下 完結撒花,接下來開始學習SpringBoot和軟考中級設計師。 總的來說,我還是比較喜歡.NET,SSM配置實在是太麻煩了,基本沒怎麼寫代碼,時間都花到配置文件上面去了。 筆記部分 ...
  • JSON Web Token(縮寫 JWT)是目前最流行的跨域認證解決方案。 傳統的session認證 http協議本身是一種無狀態的協議,而這就意味著如果用戶向我們的應用提供了用戶名和密碼來進行用戶認證,那麼下一次請求時,用戶還要再一次進行用戶認證才行,因為根據http協議,我們並不能知道是哪個用 ...
  • 功能實現02 6.功能05-顯示家居信息 6.1需求分析 進入後臺系統,可以在頁面進行所有家居信息的展示 6.2思路分析 完成從後端代碼從mapper(dao層)-->Service層-->Controller層,並對代碼進行測試 完成前端代碼,使用axios發送http請求,返回所有家居信息,將數 ...
  • 使用 VLD 記憶體泄漏檢測工具輔助開發時整理的學習筆記。本篇介紹 VLD 配置文件中配置項 StartDisabled 的使用方法。 ...
  • QAbstractBUtton: 所有按鈕控制項的基類 提供按鈕的通用功能 繼承自QWidget 屬於抽象類別,不能直接去使用,必須藉助於子類(除非你覺得子類不夠用,想自定義一個按鈕) 大部分功能之前已經使用過,在這裡只作簡單介紹 文本設置: setText(str) :設置按鈕提示文本 text() ...
  • 推薦一些學習qml教程 Qt官方的QML教程: https://doc.qt.io/qt-5/qtqml-index.html 這是一個由Qt官方提供的完整的QML教程,包含了所有基本知識和高級語法。 QML中文網:http://www.qmlcn.com/ 這是一個非常不錯的中文QML學習網站,提 ...
  • 面向對象2 訪問修飾符 | | private | default | protected | public | | | | | | | | 當前類 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_che ...
一周排行
    -Advertisement-
    Play Games
  • 前言 推薦一款基於.NET 8、WPF、Prism.DryIoc、MVVM設計模式、Blazor以及MySQL資料庫構建的企業級工作流系統的WPF客戶端框架-AIStudio.Wpf.AClient 6.0。 項目介紹 框架採用了 Prism 框架來實現 MVVM 模式,不僅簡化了 MVVM 的典型 ...
  • 先看一下效果吧: 我們直接通過改造一下原版的TreeView來實現上面這個效果 我們先創建一個普通的TreeView 代碼很簡單: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技術部"> <TreeViewItem He ...
  • 1. 生成式 AI 簡介 https://imp.i384100.net/LXYmq3 2. Python 語言 https://imp.i384100.net/5gmXXo 3. 統計和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 數 ...
  • 本文為大家介紹下.NET解壓/壓縮zip文件。雖然解壓縮不是啥核心技術,但壓縮性能以及進度處理還是需要關註下,針對使用較多的zip開源組件驗證,給大家提供個技術選型參考 之前在《.NET WebSocket高併發通信阻塞問題 - 唐宋元明清2188 - 博客園 (cnblogs.com)》講過,團隊 ...
  • 之前寫過兩篇關於Roslyn源生成器生成源代碼的用例,今天使用Roslyn的代碼修複器CodeFixProvider實現一個cs文件頭部註釋的功能, 代碼修複器會同時涉及到CodeFixProvider和DiagnosticAnalyzer, 實現FileHeaderAnalyzer 首先我們知道修 ...
  • 在軟體行業,經常會聽到一句話“文不如表,表不如圖”說明瞭圖形在軟體應用中的重要性。同樣在WPF開發中,為了程式美觀或者業務需要,經常會用到各種個樣的圖形。今天以一些簡單的小例子,簡述WPF開發中幾何圖形(Geometry)相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 在 C# 中使用 RabbitMQ 通過簡訊發送重置後的密碼到用戶的手機號上,你可以按照以下步驟進行 1.安裝 RabbitMQ 客戶端庫 首先,確保你已經安裝了 RabbitMQ 客戶端庫。你可以通過 NuGet 包管理器來安裝: dotnet add package RabbitMQ.Clien ...
  • 1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...