分頁分為兩種:
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本身並沒有創造新的技術 元...