使用方法看类的说明,使用的是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;
}
}