1. 程式人生 > >mongo資料庫下和mybatis下的後端分頁操作

mongo資料庫下和mybatis下的後端分頁操作

1.Mongo 資料庫下的後端分頁操作

(1)對資料庫查詢資料直接進行分頁分裝:

  • Pageable 是Spring Data庫中定義的一個介面,該介面是所有分頁相關資訊的一個抽象,通過該介面,我們可以得到和分頁相關所有資訊(例如pageNumberpageSize等),這樣,Jpa就能夠通過pageable引數來得到一個帶分頁資訊的Sql語句。
  • Page類也是Spring Data提供的一個介面,該介面表示一部分資料的集合以及其相關的下一部分資料、資料總數等相關資訊,通過該介面,我們可以得到資料的總體資訊(資料總數、總頁數...)以及當前資料的資訊(當前資料的集合、當前頁數等)

一般我們會現在當前類中匯入Pageable以及Page介面

import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Page;

現在我們看看該Pageable介面:

 

主要我們用的一般就是page,size,sort ,其餘的 大家看介面 也能大致瞭解

還有page介面:

 瞭解了一些之後,我們就走一下流程,一般我們會直接從前端獲取pageable物件,通過呼叫資料庫,找到相關資料後用Page封裝直接返回給前端。

下面是我最新做的一個關於問卷調查專案的後端分頁程式碼:

(1)從前端獲取pageable物件

(2) 資料庫查詢,page封裝

(3)返回前端封裝的資料(箭頭省略後之間是一些資料內容),

 通過查詢結果我們知道:

  • 共有12條資料
  • 當前頁不是最後一頁,後面還有資料
  • 總共有2頁
  • 每頁大小為10
  • 當前頁為第1頁
  • 當前頁是第一頁
  • 當前頁一共有10條資料

(2)對List進行分裝

第一種方法是對資料庫查詢結果直接進行Page封裝 ,但有時候我們並不想直接對資料庫進行操作,比如我們對某一個list進行分頁封裝返回給list,所以我們也要學會對list進行分頁封裝

首先這是一個實現Serializable介面的PageDatas<E>類,E就是物件:

 以下是定義的一個paging方法,我把它放在pagingUtils類裡面,paging接收page(當前頁),list(待分頁封裝的資料組),以及currentSize(每頁記錄數)引數,然後對資料組list進行分頁封裝,程式碼如下:

 以下是程式碼呼叫實現:

 

返回資料:

 

2.mybatis下的後端分頁