首先說明一下分頁的幾個變數:
pagenow
表示當前是第幾頁(由使用者決定);
pagesize
表示每頁顯示幾條記錄(由程式決定);
pagecount
表示共有多少頁(計算得出)
rowcount 表示共有多少記錄(從資料庫查詢可得出)
pagecount的計算方法:①
pagecount = rowcount%pagesize==0 ? rowcount/pagesize : rowcount/pagesize + 1; ②
pagecount = (rowcount-1)/pagesize+1;
③ if(rowcount%pagesize==0)
pagecount=rowcount/pagesize;
else
pagecount=rowcount/pagesize+1;
rowcount的查詢語句:
ps = conn.preparestatement(
"select count(*) from user");
顏色部分為mysql查詢總共有多少記錄的語句
rs = ps.executequery();
rs.next(); 一定要執行以下next()方法,不然取不到記錄數量!
rowcount=rs.getint(1);
下面是分頁的核心部分:
string sql =
" select * from user order by id limit "
+(pagenow-
1)*pagesize+
","+pagesize+
"";
該sql語句是用來執行分頁操作的mysql語句,具體格式為:
select * from 表名 order by 欄位名 limit number1 , number2;
(number1表示從第幾個記錄開始 不包括
number1本身;
number2表示從
number1往下數幾個)
ps = conn.preparestatement(sql);
rs=ps.executequery();
out.println(""); 建立乙個**
out.println("id
使用者名稱密碼
");
while(rs.next())
out.println("");
out.print("+(pagenow==1?pagenow:(
pagenow-1
))+");
request.getparameter(
"pagenow"))
for(inti=1;i<=pagecount;i++)
out.print("+(pagenow==pagecount?pagenow:(
pagenow+1
))+"); 最後
一頁,則跳轉仍停留在本頁面;如果不為
最後request.getparameter(
"pagenow"))
out.println(" "+"當前頁"+pagenow+"/"+"總頁數"+pagecount);
mysql 分頁 重複 Mysql分頁重複問題
因為這個bug,同事差點被祭天 mp.weixin.qq.com 前言前些天同事告訴我遇到乙個的bug.mysql分頁時每頁的資料中有重複的資料.我一聽驚呆了,以前怎麼都沒有遇見這種事情.案件重演 用於涉及到業務表,不方便截圖.就用簡單的模擬資料表來進行測試吧 建立學生表 create table ...
mysql 分頁 不連續 mysql分頁的問題
用過mysql的人肯定知道,mysql提供了原生的分頁功能 limit關鍵字。limit 子句可以被用於強制 select 語句返回指定的記錄數。limit 接受乙個或兩個數字引數。引數必須是乙個整數常量。如果給定兩個引數,第乙個引數指定第乙個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。...
mysql分頁概念 MySQL 分頁
分頁的基本原理 mysql explain select from message order by id desc limit 10000,20 1.row id 1 select type table message type index possible keys null key prima...