使用方法看類的說明,使用的是servlet,在架構上使用的話自行修改一下吧。。。。。分頁語句使用的是Mysql的
package com.turing.util;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.turing.dao.DaoImpl;
import com.turing.dao.IDao;
/**
* Servlet中用于分頁的類
* 使用在類中使用了dao的查詢方法,使用的時候如果dao的查詢語句報錯請換成自己的
* 使用方法:将page對象建立出來調用pageFenye的方法四個參數在方法中有說明
* 方法中已經将分頁的list存入作用域中,分頁的按鈕字元串已經存入作用域中
* 在jsp中直接使用${pageStr}就可以
* jsp中<c:forEach items="${list}" var="map" varStatus="i">直接使用list
* */
public class page {
private List records;// 記錄
private Long totalrecordnumber;// 總記錄數
private Integer startindex;// 第一頁
private Integer endindex;// 最後一頁
private Integer totalpagenumber;// 總頁數
private Integer currentpage;// 目前頁
IDao dao=new DaoImpl();//使用的dao
//獲得總頁數 顯示頁數 目前頁數 第一頁 最後一頁
public void setIndex(int currentpage, int viewperpage, int totalpagenumber) {
if (viewperpage >= totalpagenumber) {
startindex = ;
endindex = totalpagenumber;
} else {
if (currentpage <= viewperpage / ) {
startindex = ;
endindex = viewperpage;
} else if ((currentpage + viewperpage / ) > totalpagenumber) {
startindex = totalpagenumber - viewperpage + ;
endindex = totalpagenumber;
} else {
startindex = currentpage - (viewperpage - ) / ;
endindex = currentpage + viewperpage / ;
}
}
}
/**
* return pageStr和list(分頁後的list已經存入作用域中)
* 傳入參數:
* sql:查詢的表的sql語句
* maximum:每頁顯示多少條
* viewperpage:可以顯示多少頁
* */
public void pageFenye(HttpServletRequest request, HttpServletResponse response,String sql,int maximum,int viewperpage) throws ClassNotFoundException, SQLException{
// 目前是第幾頁
String currentpageStr = request.getParameter("currentpage") == null ? "1" : request.getParameter("currentpage");
int currentpage = Integer.parseInt(currentpageStr);
// 每頁顯示多少條
// 可以顯示多少頁
//分頁查詢語句
List<Map<String, Object>> listPage = dao.executeQueryForList(""+sql+" limit "+ (currentpage - ) * maximum + "," + maximum);
//查詢全部
List<Map<String, Object>> listAll = dao.executeQueryForList(sql);
int count=listAll.size();
this.records = listAll;
this.totalrecordnumber = (long) count;
this.currentpage = currentpage;
totalpagenumber = (int) (totalrecordnumber % maximum == ? totalrecordnumber / maximum: totalrecordnumber / maximum + );//獲得總頁數
setIndex(currentpage, viewperpage, totalpagenumber);
String pageStr=" <div class=\"text-right\">總共"+listAll.size()+"條資料</div> "+
" <div class=\"btn btn-group\" style=\"display:flex;justify-content:flex-end\" align=\"right\" style=\"width: 80%\"> ";
for(int i=startindex ;i<endindex;i++){
if(currentpage==i){
pageStr+=" <button class=\"btn btn-primary\">第"+i+"頁</button> ";
}
if(currentpage!=i){
pageStr+="<button class=\"btn btn-primary\" onclick=\"topage('"+i+"')\">第"+i+"頁</button> ";
}
}
pageStr+=" </div>" ;
request.setAttribute("list",listPage );
request.setAttribute("pageStr",pageStr );
}
public List getRecords() {
return records;
}
public Long getTotalrecordnumber() {
return totalrecordnumber;
}
public Integer getStartindex() {
return startindex;
}
public Integer getEndindex() {
return endindex;
}
public Integer getTotalpagenumber() {
return totalpagenumber;
}
public Integer getCurrentpage() {
return currentpage;
}
}