JavaEE中分页的具体实现

    xiaoxiao2021-12-14  19

                  javaEE分页技术,基于mysql数据库:分类的实现思想请看图片,              

    具体的代码:

    VO层:

    public class PageBean { private List list;// 显示的数据集合 private int totalrecord;// 总记录数据 private int pagesize;// 每页要显示的数据 private int totalpage;// 总共有多少页面 private int currentpage;// 当前页 private int previouspage;// 上一页 private int nextpage;// 下一页 private int[] pagebar;// 页码条 public int getTotalpage() { if (this.totalrecord % this.pagesize == 0) { this.totalpage = this.totalrecord / this.pagesize; } else { this.totalpage = this.totalrecord / this.pagesize + 1; } return totalpage; } public List getList() { return list; } public void setList(List list) { this.list = list; } public int getTotalrecord() { return totalrecord; } public void setTotalrecord(int totalrecord) { this.totalrecord = totalrecord; } public int getPagesize() { return pagesize; } public void setPagesize(int pagesize) { this.pagesize = pagesize; } public int getCurrentpage() { return currentpage; } public void setCurrentpage(int currentpage) { this.currentpage = currentpage; } public int getPreviouspage() { if (this.currentpage - 1 < 1) { this.previouspage = 1; } else { this.previouspage = this.currentpage - 1; } return previouspage; } public int getNextpage() { if (this.currentpage + 1 >= this.totalpage) { this.nextpage = this.totalpage; } else { this.nextpage = this.currentpage + 1; } return nextpage; } public int[] getPagebar() { int pagebar[]=null; int startpage; int endpage; if (this.totalpage <= 5) { pagebar= new int[this.totalpage];//显示页码条的多少,注意下面的数字也要改动 startpage = 1; endpage = this.totalpage; } else { pagebar= new int[5];//显示页码条的多少,注意下面的数字也要改动 startpage = this.currentpage - 2; endpage = this.currentpage + 2; if (startpage < 1) { startpage = 1; endpage = 5; } if (endpage > this.totalpage) { endpage = this.totalpage; startpage = this.totalpage - 4; } } int index=0; for (int i = startpage; i <= endpage; i++) { pagebar[index++] = i; } this.pagebar = pagebar; return pagebar; } } public class QueryInfo { private int currentpage=1;//用户当前看的页 private int pagesize=5;//记住用户想看的页面数据多少 private int startindex;//记住用户看的页的数据在数据库的起始位置 public int getCurrentpage() { return currentpage; } public void setCurrentpage(int currentpage) { this.currentpage = currentpage; } public int getPagesize() { return pagesize; } public void setPagesize(int pagesize) { this.pagesize = pagesize; } public int getStartindex() { this.startindex=(this.currentpage-1)*this.pagesize; return startindex; } } public class QueryResult { private List list;//记住用户看的页的数据; private int totalrecord;//记住总记录数 public List getList() { return list; } public void setList(List list) { this.list = list; } public int getTotalrecord() { return totalrecord; } public void setTotalrecord(int totalrecord) { this.totalrecord = totalrecord; } }servlet层: public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { QueryInfo info= WebUtils .request2Bean(req, QueryInfo.class); BusinessService service=new BusinessServiceImpl(); PageBean pagebean=service.pageQuery(info); req.setAttribute("pagebean",pagebean); req.getRequestDispatcher("/WEB-INF/jsp/listcustomer.jsp").forward(req, resp); } catch (Exception e) { e.printStackTrace(); req.setAttribute("message", "查询失败"); req.getRequestDispatcher("/message.jsp").forward(req, resp); } }service层 public PageBean pageQuery(QueryInfo queryInfo ){ //调用DAO获取到页面数据; QueryResult qr = dao.pageQuery(queryInfo.getStartindex(), queryInfo.getPagesize()); //根据dao查询结果,生成页面显示需要pagebean PageBean pb=new PageBean(); pb.setCurrentpage(queryInfo.getCurrentpage()); pb.setList(qr.getList()); pb.setPagesize(queryInfo.getPagesize()); pb.setTotalrecord(qr.getTotalrecord()); return pb; }dao层 public QueryResult pageQuery(int startindex, int pagesize) { Connection conn = null; PreparedStatement st = null; ResultSet rs = null; QueryResult query = new QueryResult(); try { conn = JdbcUtils.getConnection(); String sql = "select * from customer limit ?,?"; st = conn.prepareStatement(sql); st.setInt(1, startindex); st.setInt(2, pagesize); rs = st.executeQuery(); List list = new ArrayList(); while (rs.next()) { Customer c = new Customer(); c.setBirthday(rs.getDate("birthday")); c.setCellphone(rs.getString("cellphone")); c.setDescription(rs.getString("description")); c.setEmail(rs.getString("email")); c.setGender(rs.getString("gender")); c.setId(rs.getString("id")); c.setName(rs.getString("name")); c.setPreference(rs.getString("preference")); c.setType(rs.getString("type")); list.add(c); } query.setList(list); sql = "select count(*) from customer"; st = conn.prepareStatement(sql); rs = st.executeQuery(); if (rs.next()) { query.setTotalrecord(rs.getInt(1)); } return query; } catch (SQLException e) { throw new DaoException(); } finally { JdbcUtils.release(conn, st, rs); } }

    转载请注明原文地址: https://ju.6miu.com/read-970382.html

    最新回复(0)