mybatis實現物理分頁

2021-07-26 04:56:34 字數 2165 閱讀 5461

物理分頁:把資料在資料庫中進行分頁,得到需要的那頁資訊

邏輯分頁:把資料從資料庫中全部拿出來,在後台進行分頁,得到需要的那頁資訊

背景:ssm框架+mysql

一:準備pager類

public class pager

public pager(int pagesize, int currentpage, int totalrecord, int totalpage, listdatalist)

public pager(int pagenum, int pagesize, listsourcelist)

// 總記錄條數

this.totalrecord = sourcelist.size();

// 每頁顯示多少條記錄

this.pagesize = pagesize;

// 獲取總頁數

this.totalpage = this.totalrecord / this.pagesize;

if (this.totalrecord % this.pagesize != 0)

// 當前第幾頁資料

this.currentpage = this.totalpage < pagenum ? this.totalpage : pagenum;

// 起始索引

int fromindex = this.pagesize * (this.currentpage - 1);

// 結束索引

int toindex = this.pagesize * this.currentpage > this.totalrecord ? this.totalrecord

: this.pagesize * this.currentpage;

this.datalist = sourcelist.sublist(fromindex, toindex);

} public int getpagesize()

public void setpagesize(int pagesize)

public int getcurrentpage()

public void setcurrentpage(int currentpage)

public int gettotalrecord()

public void settotalrecord(int totalrecord)

public int gettotalpage()

public void settotalpage(int totalpage)

public listgetdatalist()

public void setdatalist(listdatalist)

}

select

count(*)

from t_user

where 1=1

and email like '%'+#+'%'

and nickname like '%'+#+'%'

and nickname like '%'+#,#

三:寫好***service、***sserviceimpl

@override

public listfindusersbypage(string email,string nickname,int fromindex, int pagesize)

@override

public int getcount(string email, string nickname)

@override

public pagergetuserspage(string email, string nickname, int currentpage, int pagesize)

int fromindex=(currentpage-1)*pagesize;

pagerpager=new pager(pagesize, currentpage, totalrecord, totalpage, list);

return pager;

}

四:junit測試

ps:將資料展示到頁面可以使用外掛程式也可自己原生寫,有機會一定補上       

Mybatis 實現物理分頁的簡單實現

分頁查詢 首先我們要明確什麼是分頁?為什麼要去分頁?分頁就是將資料以多頁去展示,使用分頁可以提高客戶的感受。分頁的分類 1.物理分頁 只從資料庫中查詢當前頁的資料 優點 不占用很多記憶體 缺點 效率比價低 相比於邏輯分頁 2.邏輯分頁 從資料庫將所有記錄查詢出來,儲存到記憶體中,展示當前頁,然後資料...

mybatis物理分頁(常用)

分頁查詢 首先我們要明確什麼是分頁?為什麼要去分頁?分頁就是將資料以多頁去展示,使用分頁可以提高客戶的感受。分頁的分類 1.物理分頁 只從資料庫中查詢當前頁的資料 優點 不占用很多記憶體 缺點 效率比價低 相比於邏輯分頁 2.邏輯分頁 從資料庫將所有記錄查詢出來,儲存到記憶體中,展示當前頁,然後資料...

mybatis實現分頁

邏輯分頁 1.1.業務控制層 public void selectdeptwithpage1 1.2 資料訪問層 select from t department and deptname like if where select 2.物理分頁 這種分頁是我們mysql資料庫支援的,其實也就是拼sq...