第一步:首先建立一个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" %>
会员登录
浏览记录