jsp oracle分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp oracle分页相关的知识,希望对你有一定的参考价值。

在jsp上做个分页,利用oracle的rownum查询所需要的条数,但我现在还想要totalsize,还要用select count(*) .... 再查一遍吗?
有没有办法我就查一遍就行的?
你的意思是第一次的时候查两次,以后就查一次,对吧,那我如何控制totalsize呢,例如我新增和删除了,我怎么办?我的web程序是每次新增活删除完,跳到这个jsp上,然后又这个jsp 的 Message[] messages = wooDao.getAllMessageForPage(Topage,pagesize);取数据

是需要count的了,毕竟你的分页来取数据取到的不是全部的,而只是取了一小部分。
为了减少取总数的时间代价,可以想法把总数保存下来,而不用每次在界面上翻页时再去取,比如可以放在列表显示页的parent里,当然放在哪随自己了,
甚至不怕死的话,放在session都行

如果每次显示时,数据都有可能被增、删了,那就没办法了,只能每次count一下。最好不要count(*),用count('x')
参考技术A 好像没办法一个查询就行的哦 只能是两个查询 否则别人新增或者删除了 反映不出来的

JSP 分页代码

jsp 分页模板

  1. 后台分页代码:

    说明: 在 com.zc.domain 包下: PageBean.java 文件

package cn.itcast.customer.domain;

?

import java.util.List;

?

/**

*

* @author not-bug

* @function: 这是用于分页的PageBean 对象

* @instructions: 这是按照面向对象的思想,进行的分页处理的操作 用泛型主要是为了提高代码的可重用性。

* 分页中的每一条记录都是一个对象,分页也就是满足某些条件的对象集合

* @param <T>

*/

public class PageBean<T>

{

????// 当前页的记录,通过 DAO层可以查询出来

????private List<T> records;

?

????// 当前的页码数,从页面上传递过来的,默认第 1

????private int pageNow;

?

????// 总页码数 (可以通过 总记录数 pageSize 计算出来)

????private int totalPage;

?

????// 每页显示的记录条数

????private int pageSize;

?

????// 总记录数(总共有多少条记录)通过 DAO可以查询出来

????private int totalRecords;

?

????// 当前页首行的下标

????private int startIndex;

????

????//servlet url 的路径

????private String url;

?

????public String getUrl()

????{

????????return url;

????}

?

????public void setUrl(String url)

????{

????????this.url = url;

????}

?

????/**

???? * @instruction:有参构造方法(提供 当前页、总记录数、每页记录数参数用于初始化)

???? * @param pageNow

???? * :当前页

???? * @param totalRecords

???? * :总的记录数

???? * @param pageSize

???? * 每页记录的个数

???? */

????public PageBean(int pageNow, int totalRecords, int pageSize)

????{

????????this.pageNow = pageNow;

????????this.totalRecords = totalRecords;

????????this.pageSize = pageSize;

????}

?

????public PageBean() {

????}

????

????public List<T> getRecords()

????{

????????return records;

????}

?

????public void setRecords(List<T> records)

????{

????????this.records = records;

????}

?

????public int getPageNow()

????{

????????return pageNow;

????}

?

????// 获取总 页数

????public int getTotalPage()

????{

????????this.totalPage = totalRecords / pageSize;

????????//如果取余不为 0 ,则把总页数 加上 1

????????if (totalRecords % pageSize != 0)

????????????this.totalPage++;

????????return totalPage;

????}

?

????public int getPageSize()

????{

????????return pageSize;

????}

?

????public void setPageSize(int pageSize)

????{

????????this.pageSize = pageSize;

????}

?

????public int getTotalRecords()

????{

????????return totalRecords;

????}

?

????public void setTotalRecords(int totalRecords)

????{

????????this.totalRecords = totalRecords;

????}

?

????// 得到当前页首行的下标

????public int getStartIndex()

????{

????????this.startIndex = (pageNow - 1) * pageSize;

????????return this.startIndex;

????}

}

?

以上是关于jsp oracle分页的主要内容,如果未能解决你的问题,请参考以下文章

使用Oracle的rownum或者存储过程分页的详细例子(jsp)~新手

Oracle+Jsp分页

jsp+oracle 排序分页+Pageutil类

jsp与mysql的分页

jsp分页计算总页数公式

jsp 如何将查询结果实现分页,最好简单易懂