用面向对象的思想实现分页功能

2 篇文章 0 订阅
在WEB开发中,面对大量数据时,通常需要实现分页功能以提高性能和用户体验。本文介绍了两种分页方式:前端分页和后端分页,并详细阐述了如何运用面向对象思想创建一个泛型的后端分页类来实现数据的分页处理,适用于各种类型的数据,如项目信息和用户信息。
摘要由CSDN通过智能技术生成

在做WEB开发的时候,很多时候都需要在浏览器上显示数据,而这些数据的来源大多是数据库,越庞大的系统,数据库中的记录也就越多,所以不可能一次性把这些数据显示在前端界面上,这时候就需要 分页 的功能。


分页主要有两种方式:

1、前端分页,即一次性把数据库中的数据全部取出来,在前端应用JS等技术显示一定范围内的数据。这种方法的优点是用户只需向服务器发送一次请求,缺点就是大量的数据的暂存在内存中,影响系统性能。

2、后端分页,即根据预先设置好的页大小,从数据库中取出指定数量的数据,用户每次点击“下一页”操作时,就向数据库发起一次查询请求,这种方法是比较可取的方法。


之前在做一个实验室管理系统的时候,有用到分页,总体思路利用面向对象的思想是为 分页 创建一个独立的类,同时这个把这个类指定为泛型类,因为分页的数据可以是“项目信息 ”、也可以是“用户信息”等,这样就可以重用这个分页类。

具体代码如下:


package com.zack.util;

import java.util.List;

public class PageView<T> {
		 
    private int totalRecord;         //总记录数
    private int totalPage;        //总页数
    private int currentPage;    //当前页
    private int pageSize;        //每页记录数
    private List<T> list;        //要返回的某一页的记录列表
	
    
	public int getTotalRecord() {
		return totalRecord;
	}
	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}
	public int getTotalPage() {
		return totalPage;
	}
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	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;
	}
	public List<T> getList() {
		return list;
	}
	public void setList(List<T> list) {
		this.list = list;
	}
    
    
	public static int countTotalPage(final int pageSize,final int totalRecord){
        int totalPage = totalRecord%pageSize==0?totalRecord/pageSize:totalRecord/pageSize+1;
        return totalPage;
    }
    
	public static int countOffset(final int pageSize,final int currentPage){
        final int offset = pageSize*(currentPage-1);
        return offset;
    }
	
	public static int countCurrentPage(int page){
        final int currentPage = (page==0?1:page);
        return currentPage;
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值