javaweb分页原理详解
更新时间:2017年04月08日 14:06:39 作者:第九种格调的人生
这篇文章主要为大家详细介绍了javaweb分页的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了javaweb分页原理的具体实现代码,供大家参考,具体内容如下
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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringBoot中分页插件PageHelper的使用详解
分页查询是为了高效展示大量数据,通过分页将数据划分为多个部分逐页展示,原生方法需手动计算数据起始行,而使用PageHelper插件则简化这一过程,本文给大家介绍SpringBoot中分页插件PageHelper的使用,感兴趣的朋友一起看看吧2024-09-09springboot中使用@Transactional注解事物不生效的坑
这篇文章主要介绍了springboot中使用@Transactional注解事物不生效的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01
最新评论