為什麼用到分頁查詢?
1、使用者體驗、頁面顯示效果:
在開發過程當中,我們經常需要從資料庫中查詢資料,然後將資料在客戶端顯示,如果資料量少的話,可以在乙個頁面上顯示完成,但是如果查詢的資料是幾百條、上千條資料的時候,全部在乙個頁面上顯示出來,非常影響頁面的美觀性和使用者的體驗。所以這就用到分頁技術。
2、伺服器資源、效能:
當資料量過大時,可能會導致各種各樣的問題發生,例如:伺服器資源被耗盡,因資料傳輸量過大而使處理超時,等等。最終都會導致查詢無法完成當資料量過大時,可能會導致各種各樣的問題發生,例如:伺服器資源被耗盡,因資料傳輸量過大而使處理超時,等等。最終都會導致查詢無法完成
打乙個比方,有很多很多人要過河,而只有一條船擺渡。若讓所有人都上船,肯定會導致沉船(資源耗盡);若換一條超大的船,除了換船要很高的成本外,上船下船也要耗費很長時間。
所以最好的解決方法是,根據船的容量,每次只上一部分人。等這一船人過河以後,再擺渡下一批人。
2.知識剖析
(一)limit用法
select * from tablename limit #,#
start是從**開始顯示
size是每頁顯示多少條記錄
(二)總記錄數totalcount
select count(1) from tablename
(三)總頁數
totalpage=totalcount/pagesize
需要用到的引數
private int currpage;//當前頁數首先建乙個pagebean的類private int pagesize;//每頁顯示的記錄數
private int totalcount;//總記錄數
private int totalpage;//總頁數
private listlists;//每頁的顯示的資料
public class pagebeanpublic void setcurrpage(int currpage)
public int getpagesize()
public void setpagesize(int pagesize)
public int gettotalcount()
public void settotalcount(int totalcount)
public int gettotalpage()
public void settotalpage(int totalpage)
public listgetlists()
public void setlists(listlists)
@override
public string tostring() ';}}
select邏輯層實現方法*from t_stu
limit #,#
select count(*) from t_stu
@override控制層public pagebeanfindbypage(int currentpage) throws exception , student, student, student, student, student, student, student]
}
public string form(@requestparam(value="currentpage",defaultvalue="1",required=false)int currentpage,model model) throws exception
jsp頁面
上面表的是自己寫的東西,就不貼了
第$/ $頁看下效果總記錄數:$ 每頁顯示:$
[首頁]
[尾頁]
基本就是這個效果。
mybatis實現物理分頁
物理分頁 把資料在資料庫中進行分頁,得到需要的那頁資訊 邏輯分頁 把資料從資料庫中全部拿出來,在後台進行分頁,得到需要的那頁資訊 背景 ssm框架 mysql 一 準備pager類 public class pager public pager int pagesize,int currentpag...
SQL實現分頁查詢方法總結
開發過程中經常遇到分頁的需求,今天在此總結一下吧。簡單說來方法有兩種,一種在源上控制,一種在端上控制。源上控制把分頁邏輯放在sql層 端上控制一次性獲取所有資料,把分頁邏輯放在ui上 如gridview 顯然,端上控制開發難度低,適於小規模資料,但資料量增大時效能和io消耗無法接受 源上控制在效能和...
MySQL實現分頁查詢的方法
在公司的系統中有乙個平台是 做配置管理的 就是所謂的 crud 的平台,但是點選後進去到頁面第一次看到的是一次查詢的頁面 點選頁面自動的觸發查詢的功能 後面就可以你的crud的操作是給運營的同事來操作的,但是一般的是我們資料量比較的少的業務是之間查詢出來所有的資料,直接返回給前端的讓他自己做分頁的,...