自用 :手动分页

第一步:首先建立一个PageBean

package com.qn.jq.daomain;

import java.util.List;

/**
 * @author Lizhenye
 * @date 2019/7/30  20:04
 */
public class PageBean {
    private int totalCount; //总记录数   //需要方法
    private  int totalPage; //总页数
    private List list;   //每页的数据   //也要方法来设置
    private int currentPage; // 表示当前的页数
    private  int pageSize; //每页显示多少个数据

    public PageBean(int totalCount, int totalPage, List list, int currentPage, int pageSize) {
        this.totalCount = totalCount;
        this.totalPage = totalPage;
        this.list = list;
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }

    public PageBean() {
    }

    @Override
    public String toString() {
        return "PageBean{" +
                "totalCount=" + totalCount +
                ", totalPage=" + totalPage +
                ", list=" + list +
                ", currentPage=" + currentPage +
                ", pageSize=" + pageSize +
                '}';
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

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

第二步 写dao方法 用来查询总条数totalCount 以及 每一页的数据List

public interface ProductDao {
    //写一个查询一页数据的方法
    List selectList(int currentPage,int pageSize);

    //写一个查询所有条数的语句
    int selectCountProduct();
}

写一个daoImpl 实现里面的代码内容

package com.qn.jq.dao.impl;

import com.qn.jq.dao.ProductDao;
import com.qn.jq.daomain.Product;
import com.qn.jq.utils.C3P0_utils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

/**
 * @author Lizhenye
 * @date 2019/7/30  20:06
 */
public class ProductDaoImpl implements ProductDao{
    JdbcTemplate jdbcTemplate = new JdbcTemplate(C3P0_utils.dataSource());
    @Override
    public List selectList(int currentPage, int pageSize) {
        String sql = "select * from product limit ? , ?";
        List list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(Product.class), currentPage, pageSize);
        return list;
    }
    @Override
    public int selectCountProduct() {
        String sql = "select  count(*) from product";
        return jdbcTemplate.queryForObject(sql, Integer.class);
    }
}

第三步:写service层 获得一个分页的PageBean并且通过impl写入程序

package com.qn.jq.service;

import com.qn.jq.daomain.PageBean;
import com.qn.jq.daomain.Product;

import java.util.List;

/**
 * @author Lizhenye
 * @date 2019/7/30  20:17
 */
public interface FindAllProductByPage {
    //写一个获取PageBean的方法
    PageBean findAllPageBean(int currentPage,int  pageSize);

}

impl实现Bean的添加

package com.qn.jq.service.impl;

import com.qn.jq.dao.impl.ProductDaoImpl;
import com.qn.jq.daomain.PageBean;
import com.qn.jq.daomain.Product;
import com.qn.jq.service.FindAllProductByPage;

import java.util.List;

/**
 * @author Lizhenye
 * @date 2019/7/30  20:20
 */
public class FindAllProductImpl implements FindAllProductByPage {


    @Override
    public PageBean findAllPageBean(int currentPage, int pageSize) {
        PageBean productPageBean = new PageBean();
        productPageBean.setCurrentPage(currentPage);
        productPageBean.setList(new ProductDaoImpl().selectList((currentPage-1)*pageSize,pageSize));
        productPageBean.setPageSize(pageSize);
        productPageBean.setTotalCount(new ProductDaoImpl().selectCountProduct());
        productPageBean.setTotalPage((productPageBean.getTotalCount()%productPageBean.getPageSize())==0?(productPageBean.getTotalCount()/productPageBean.getPageSize()):(productPageBean.getTotalCount()/productPageBean.getPageSize())+1);
        return productPageBean;
    }
}

第四步写servlet

package com.qn.jq.web;

import com.qn.jq.daomain.PageBean;
import com.qn.jq.daomain.Product;
import com.qn.jq.service.FindAllProductByPage;
import com.qn.jq.service.impl.FindAllProductImpl;

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 java.io.IOException;

/**
 * @author Lizhenye
 * @date 2019/7/30  20:25
 *///@javax.servlet.annotation.WebServlet(name = "FindAllByPageServlet")
@WebServlet("/FindAllByPageServlet")
public class FindAllByPageServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setHeader("content-type", "text/html;charset=UTF-8");
        String currentPage = request.getParameter("currentPage");
        if ("".equals(currentPage) || currentPage == null) {
            currentPage = "1";
        }
        PageBean pageBean = new FindAllProductImpl().findAllPageBean(Integer.parseInt(currentPage), 5);
        System.out.println(pageBean);
        request.setAttribute("pb",pageBean);
        request.getRequestDispatcher("/product_list.jsp").forward(request, response);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

最后我们在jsp页面上显示的数据操作

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




会员登录












	
	


	

${product.pname}

商城价:¥${product.shop_price}

浏览记录

你可能感兴趣的:(自用)