JavaEE中分页的具体实现

来源:互联网 发布:linux如何开启ftp服务 编辑:程序博客网 时间:2024/06/05 22:33

              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);}}




1 0
原创粉丝点击