Mysql+servlet实现分页

使用方法看类的说明,使用的是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中直接使用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 = 1;
           endindex = totalpagenumber;
          } else {
           if (currentpage <= viewperpage / 2) {
            startindex = 1;
            endindex = viewperpage;
           } else if ((currentpage + viewperpage / 2) > totalpagenumber) {
            startindex = totalpagenumber - viewperpage + 1;
            endindex = totalpagenumber;
           } else {
            startindex = currentpage - (viewperpage - 1) / 2;
            endindex = currentpage + viewperpage / 2;
           }
          }
         }
        /**
         * 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> listPage = dao.executeQueryForList(""+sql+" limit "+ (currentpage - 1) * maximum + "," + maximum);
             //查询全部
             List> listAll = dao.executeQueryForList(sql);
             int count=listAll.size();
             this.records = listAll;
             this.totalrecordnumber = (long) count;
             this.currentpage = currentpage;
             totalpagenumber = (int) (totalrecordnumber % maximum == 0 ? totalrecordnumber / maximum: totalrecordnumber / maximum + 1);//获得总页数
             setIndex(currentpage, viewperpage, totalpagenumber);

             String pageStr="  
总共"+listAll.size()+"条数据
"
+ "
"; for(int i=startindex ;iif(currentpage==i){ pageStr+=" "; } if(currentpage!=i){ pageStr+=" "; } } pageStr+="
"
; 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; } }

你可能感兴趣的:(servlet3)