jsp oracle分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp oracle分页相关的知识,希望对你有一定的参考价值。
在jsp上做个分页,利用oracle的rownum查询所需要的条数,但我现在还想要totalsize,还要用select count(*) .... 再查一遍吗?
有没有办法我就查一遍就行的?
你的意思是第一次的时候查两次,以后就查一次,对吧,那我如何控制totalsize呢,例如我新增和删除了,我怎么办?我的web程序是每次新增活删除完,跳到这个jsp上,然后又这个jsp 的 Message[] messages = wooDao.getAllMessageForPage(Topage,pagesize);取数据
为了减少取总数的时间代价,可以想法把总数保存下来,而不用每次在界面上翻页时再去取,比如可以放在列表显示页的parent里,当然放在哪随自己了,
甚至不怕死的话,放在session都行
如果每次显示时,数据都有可能被增、删了,那就没办法了,只能每次count一下。最好不要count(*),用count('x') 参考技术A 好像没办法一个查询就行的哦 只能是两个查询 否则别人新增或者删除了 反映不出来的
JSP 分页代码
jsp 分页模板
- 后台分页代码:
说明: 在 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分页的主要内容,如果未能解决你的问题,请参考以下文章