分页的封装——java实现(基于oracle)

本文详细介绍了如何使用Java实现基于Oracle数据库的分页功能,包括分页SQL语句的编写,分页工具类Pagenation的实现,以及分页的原理和代码示例。Pagenation类用于封装分页的详细信息,如当前页、每页大小、总记录数等,并通过EL和JSTL在前端展示。
摘要由CSDN通过智能技术生成

    分页功能(Pagenation类)

 

分页功能的 封装 + 实现:

分页的SQL语句 + 分页工具类Pagenation的细节 + 分页原理

 

一、     分页的SQL语句:

select * from (selectt.*,row_number() over(order by ROWNUM ASC) rn from goods t) where rn>=? andrn<=?

Ø  goods :为表名,数据从goods中查得

Ø  第一个? :起始行号

Ø  第二个? :终点行号

 

二、     分页工具类Pagenation的细节:

Pagenation类:类似JavaBean的工具类,封装了分页后的细节,

主要作用:封装后台分页细节,前台调用分页细节。

简介:实例化时需要传入3个参数,然后类内部计算得到所有分页细节

注意:后期还需要调用setList()方法将分页结果也存入其中。

用法:后台用此类封装分页结果,request给前台,前台展示。

传入参数:当前页数(pageNum)+每页大小(size)+记录总行数(rowCount)

 

三、     分页原理:

1.    后台sevlet根据参数调用分页service()方法,返回值一个Pagenation类的对象,封装了当前要求的分页信息;

2.    service()方法处理过程:根据传入的三个参数,初始化Pagenation类,然后调用dao包下的分页查询类,返回值为一个List,将这个List也存入Pagenation对象中,返回返回该对象;

3.    返回的Pagenation对象包含了有关分页所有内容,将此对象放在request中传到前台,跳转到前台;

4.    在前台中取出Pagenation的相关信息,此时的Pagenation对象中存放着分页信息,用EL和JSTL显示分页信息。

 

四、     代码实现:

1.    分页工具类(核心中的核心类):

 

2.    其他代码:

(1)、前端展示代码:

package com.test.util;

import java.util.List;

/**
 * Pagenation分页工具类:用于数据的分页
 * 根据传入的pageNum参数来确定从哪页开始分页
 * 根据传入的size参数确定每页分多少条记录
 * 根据传入的rowCount参数来确定数据总条数
 * @author Alvin Xing
 */
public class Pagenation {

/* 指定的参数 */
private int pageNum;  //当前页号
private int size;  //页

package com.list.struts.util; import java.util.ArrayList; public class Page { //当前跳转的页面情况 private String pagetype; private PaginationBean pagination; private ArrayList result; //构造函数实例化接收一个pagetype和PaginationBean对象 public Page(String pagetype, PaginationBean pagination) { this.pagetype = pagetype; this.pagination = pagination; } /** * * */ public boolean isEmpty() { if (pagetype == null || pagetype.equals("")) { return true; } else { return false; } } /** * * * */ public ArrayList getResult() { if (!isEmpty()) { if (pagetype.equals("nextPage")) { result = pagination.getNextPage(); } else if (pagetype.equals("previousPage")) { result = pagination.getPreviouspage(); } else if (pagetype.equals("lastPage")){ result = pagination.getLastPage(); } else if (pagetype.equals("firstPage")){ result = pagination.getFirstPage(); } else{ result=pagination.getJumpPage(pagetype); } } else { result = pagination.getProducts(); } return result; } /** * * * */ //此对象中保存了页面的所有情况,包括多少页等信息 public PaginationBean getPagePagination() { return pagination; } /** * * */ //实例化PaginationBean的构造函数 public void Init(ArrayList result) { this.result = result; pagination = new PaginationBean(result); } } ------------------------------ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.list.struts.form.ListForm; import com.list.struts.util.Page; import com.list.struts.util.PageBean; import com.list.struts.util.PaginationBean; import com.list.struts.vo.newgetResouce; public class ListAction extends Action { /* * Generated Method
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值