Mysql+servlet实现分页

来源:互联网 发布:矩阵的逆 编辑:程序博客网 时间:2024/05/17 23:52

使用方法看类的说明,使用的是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 = 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<Map<String, Object>> listPage = dao.executeQueryForList(""+sql+" limit "+ (currentpage - 1) * 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 == 0 ? totalrecordnumber / maximum: totalrecordnumber / maximum + 1);//获得总页数             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;         }}
0 0
原创粉丝点击