Java互联网架构学习之page分页

本文介绍了Java实现分页查询的详细步骤,包括DAO层的limit查询,建立Page实体类,Service层处理分页逻辑,BaseServlet的反射调用,以及前端页面的请求格式和分页展示。通过实例讲解了如何在Servlet中处理分页请求,以及前端如何展示分页数据。
摘要由CSDN通过智能技术生成

1.在DAO层连接数据库是使用limit查询,传入index和pageSize参数

如我按页查询我的book信息,返回一个Book类型的List

public List<Book>getLimitBookList(int index,int pageSize){
		Connection conn=JDBCUtil.getConnection();
		List<Book> Books=new ArrayList<>();
		ResultSet rs=null;
		String sql="select * from book limit ? , ?";
		PreparedStatement ps=null;
		try {
			ps=conn.prepareStatement(sql);
			ps.setInt(1, index);
			ps.setInt(2, pageSize);
			rs=ps.executeQuery();
			while(rs.next()) {
				Books.add(new Book(rs.getInt("id"),rs.getString("name"), rs.getString("writer"),rs.getString("category")));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			JDBCUtil.close(conn, ps, rs);
		}
		return Books;
	}

并要有一个获得总记录数的方法,此处不在赘述

2.建立一个page的实体bean

其中成员如下:

private int pageNumber;
	private int pageSize;
	private int index;
	private int totalRecord;
	private List<T> data;
	private String path;
pageNumber需要经过过滤,防止页面上的上一页和下一页造成首页末页溢出

public int getPageNumber() {
		
		//如果pageNumber<1,则返回1
		if(pageNumber < 1){
			return 1;
		}
		
		//如果当前页大于总页数,则返回总页数
		if(pageNumber > getTotalPage()){
			return getTotalPage();
		}
		
		return pageNumber;
	}
需要有计算总页数的方法

public int getTotalPage() {
		
		/**
		 * 在这来计算总页数
		 * 	
		 * 		总记录数                 每页的条数                   总页数
		 * 		  10           2           5
		 * 		   9           2           5
		 * 		   8 	       2           4
		 * 		   7           2           4
		 * 
		 * 	当可以整除时:
		 * 	totalRecord/pageSize
		 * 
		 * 	当有余数时:
		 *  totalRecord/pageSize+1
		 */
		
		if(getTotalRecord()%getPageSize()==0){
			return getTotalRecord()/getPageSize();
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值