码迷,mamicode.com
首页 > 其他好文 > 详细

分页原理

时间:2017-04-07 22:57:23      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:nts   get   exce   find   att   UI   div   enter   request   

page类中属性

public class Page {
        private int currentPage;
        private int totalPage;
        private int count;
        private int PageSize;
        private List<Product> list;
        private String category;
        
    }    

servlet:

package com.learning.web.servlet;

import java.io.IOException;
import java.util.List;

import javax.enterprise.inject.New;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.learning.domain.Page;
import com.learning.domain.Product;
import com.learning.service.ProductService;


@WebServlet("/showProductByPage")
public class ShowProductByPage extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            int currentPage=1;
            int pageSize=4;
            //第一次取为空
            String currentPageString=request.getParameter("currentPage");
            if (currentPageString!=null) {
                currentPage=Integer.parseInt(currentPageString);
            }
            String category = request.getParameter("category");
            if ("".equals(category)) {
                category=null;
            }    
            ProductService productService=new ProductService();
            Page page=productService.showProductByPage(currentPage,pageSize,category);
            request.setAttribute("page", page);
            request.getRequestDispatcher("/product_list.jsp").forward(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

service:

public Page showProductByPage(int currentPage, int pageSize, String category) {
        try {
            Page page=new Page();
            int count=productDao.count(category);
            page.setCount(count);
            page.setList(productDao.findProductsByPage(currentPage,pageSize,category));
            int totalPage=(int) Math.ceil(1.0*count/pageSize);
            page.setPageSize(pageSize);
            page.setCurrentPage(currentPage);
            page.setTotalPage(totalPage);
            page.setCategory(category);
            return page;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

Dao:

    public int count(String category) throws SQLException {
        QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
        String sql=" select count(*) from products ";
        if (category!=null) {
            sql+=" where category=‘"+category+"‘";
        }
        long l= (Long)queryRunner.query(sql, new ScalarHandler(1));
        return (int) l;
    }



    public List<Product> findProductsByPage(int currentPage, int pageSize, String category) throws SQLException {
        QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
        String sql=" select * from products ";
        if (category!=null) {
            sql+=" where category=‘"+category+"‘";
        }
        sql+=" limit ?,?";
        return queryRunner.query(sql, new BeanListHandler<Product>(Product.class),(currentPage-1)*pageSize,pageSize);
    }

 

分页原理

标签:nts   get   exce   find   att   UI   div   enter   request   

原文地址:http://www.cnblogs.com/youwillsee/p/6680307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!