只提供全量查詢的服務,擴充套件出分頁查詢功能

2021-08-21 09:46:17 字數 1448 閱讀 4487

分頁分為兩種:

1. 物理分頁:根據分頁條件,從資料來源拿到的就是一頁的資料

2. 邏輯分頁:從資料來源拿到全量資料,根據分頁條件截取出一頁的資料

分頁條件一般是pagenum(第幾頁)、pagesize(一頁多少條)

只能使用邏輯分頁,做不到物理分頁。

mybatis的分頁外掛程式可以這麼使用

pagehelper.startpage(pagenum, pagesize);

// 查詢方法呼叫

本來selectif方法是全量查詢方法,只是在前邊加了pagehelper.startpage(pagenum, pagesize)該條語句,就可以實現分頁查詢了。

然而更一般情況下,乙個分頁方法,我們不清楚它的分頁查詢邏輯,它可能資料庫sql呼叫,也可能是redis,也可能是mongodb,也可能是restful….或者根本就不存在分頁查詢的邏輯;所以做不到物理分頁。

舉乙個最一般的例子,比如下邊這個類的findall方法。

public

class

foo}

對於findall方法做物理分頁,我們無能為力。

可以做到邏輯分頁,而且也不困難。比如寫乙個pageutil

public

class

pageutil

/*** 邏輯分頁

*@param list

*@param pagenum 小於1,預設為1

*@param pagesize 小於1,大於50拋異常

*@param

*@return

*/public

static

listgetpage(listlist, int pagenum, int pagesize)

if (pagesize < 1)

if (pagesize > 50)

if (list == null || list.isempty())

int listsize = list.size();

int listmaxindex = listsize -1;

int expectfromidex = (pagenum - 1) * pagesize;

int fromindex = expectfromidex > listmaxindex ? listsize : expectfromidex;

int expectendindex = fromindex + pagesize;

int endindex = expectendindex > listsize ? listsize : expectendindex;

return lists.newarraylist(list.sublist(fromindex, endindex));

}}

提供最好的服務

提供最好的服務 英雄亞馬遜 無論在ibm,還是在其他的企業,為客戶提供品質最高的服務都應該是所有員工的責任。將 客戶永遠是第一位的 理念深深印入腦海裡。對於管理者來說,他們有兩個顧客,一是外部客戶,一是內部客戶。管理者不但要知道外部顧客的需求是什麼,同時也要知道自己的員工需要什麼,如何為他們提供服務...

使用網路提供的web服務開發航班查詢程式

這個是乙個基於winform的客戶端程式,使用了網路提供的web服務,進行國內機票查詢,本文主要講解一下具體的客戶端開發 主介面如下圖 關於如何引用乙個web服務,請參見一些網路資料,比如 msdn 下面,我為了使用多執行緒,並且向執行緒中傳遞引數,新建了乙個類庫thread.cs,具體 如下 th...

Flask提供的RESTful Web服務

rest全稱是representational state transfer。他在 中提到 我這篇文章的寫作目的,就是想在符合架構原理的前提下,理解和評估以網路為基礎的應用軟體的架構設計,得到乙個功能強 效能好 適宜通訊的架構。rest指的是一組架構約束條件和原則。rest本身並沒有創造新的技術 元...