`
jzkangta
  • 浏览: 161616 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简单分页程序

    博客分类:
  • JAVA
SQL 
阅读更多
/**
 *
 * <p>Title: 分页公共类</p>
 * <p>Description: 使用该函数时需要设置页大小,当前页,然后调用initPage方法,得到一个PageUtil实例</p>
 */
public class Pagination extends ArrayList {
    //首页
    private int firstPage = 1;

    //最后一页
    private int lastPage = 1;

    //下一页
    private int nextPage = 0;

    //前一页
    private int prePage = 0;

    //记录数
    private int recordCount = 0;

    //总页数
    private int pageCount = 0;

    //当前页
    private int currentPage = 1;

    //一页显示条数
    private int pageSize = 0;

    //每页的第一笔数据
    private int startIndex = 1;

    //每页的最后一笔数据
    private int lastIndex = 1;

    //总共记录数
    private int totalRecord = 0;

    public Pagination() {
    }

    public Pagination(int currentPage, int pageSize) {
        if (currentPage > 0) {
            this.currentPage = currentPage;
        }
        this.pageSize = pageSize;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getFirstPage() {
        return firstPage;
    }

    public void setFirstPage(int firstPage) {
        this.firstPage = firstPage;
    }

    public int getLastPage() {
        return lastPage;
    }

    public void setLastPage(int lastPage) {
        this.lastPage = lastPage;
    }

    public int getNextPage() {
        return nextPage;
    }

    public void setNextPage(int nextPage) {
        this.nextPage = nextPage;
    }

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }

    public int getPrePage() {
        return prePage;
    }

    public void setPrePage(int prePage) {
        this.prePage = prePage;
    }

    public int getRecordCount() {
        return recordCount;
    }

    public void setRecordCount(int recordCount) {
        this.recordCount = recordCount;
    }

    public void initPage(int total) {
        //得到记录数
        recordCount = total;

        if (pageSize != 0 && recordCount != 0) {
            //得到总页数
            pageCount = (int) Math.ceil( (float) recordCount / pageSize);
        } else {
            pageCount = 1;
        }

        //得到最后一页
        lastPage = pageCount;

        //得到上一页
        if ( (currentPage - 1) >= firstPage) {
            prePage = currentPage - 1;
        } else {
            prePage = currentPage;
        }

        //得到下一页
        if ( (currentPage + 1) <= lastPage) {
            nextPage = currentPage + 1;
        } else {
            nextPage = currentPage;
        }
        //得到每页的第一笔数
        startIndex = (currentPage - 1) * pageSize + 1;
        //得到每页的最后一笔数
        lastIndex = currentPage * pageSize;
        if (lastIndex > recordCount) {
            lastIndex = recordCount;
        }
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getTotalRecord() {
        return totalRecord;
    }

    public void setTotalRecord(int totalRecord) {
        //设置总记录数
        this.totalRecord = totalRecord;
        //初始化各种数据
        this.initPage(this.totalRecord);
    }

  public void setLastIndex(int lastIndex) {
    this.lastIndex = lastIndex;
  }

  public void setStartIndex(int startIndex) {
    this.startIndex = startIndex;
  }

  public int getStartIndex() {
        return startIndex;
    }

    public int getLastIndex() {
        return lastIndex;
    }

}



调用的时候:
 public List doFindObjectsBySQL(String sql,
                                         RowCallbackHandler rcHandler,
                                         int pageNum, int pageSize) {
        JdbcTemplate jt = new JdbcTemplate(dataSource);
        Pagination pagination = new Pagination(pageNum, pageSize);

        int total = doCountObjectsBySQL(sql, jt);

        pagination.setTotalRecord(total);

        if (total > 0) {
            StringBuffer paginationSQL = new StringBuffer(" SELECT * FROM ( ");
            paginationSQL.append(" SELECT temp.* ,ROWNUM num FROM ( ");
            paginationSQL.append(sql);
            paginationSQL.append(" ) temp where ROWNUM <= " +
                                 pagination.getLastIndex());
            paginationSQL.append(" ) WHERE num > " + pagination.getStartIndex());
            pagination.addAll(jt.query(paginationSQL.toString(), rcHandler));
        }

        return pagination;
    }
分享到:
评论

相关推荐

    c#编写无存储过程简单分页程序

    本教程将深入讲解如何使用C#编写一个不依赖存储过程的简单分页程序。虽然标题提及了存储过程,但我们将主要关注无存储过程的解决方案,因为这种方法允许更高的灵活性和更好的数据库无关性。 1. **理解分页概念**: ...

    c#与sql简单分页程序

    在这个“c#与sql简单分页程序”中,关键的步骤可能包括以下几点: 1. **建立数据库连接**:使用C#的SqlConnection类创建到SQL Server的连接。你需要提供正确的服务器名、数据库名、用户名和密码。 2. **创建SQL...

    flow-router-pagination:流路由器的简单分页程序包

    流路由器分页流路由器的简单分页程序包。解释添加分页小部件非常简单: {{ &gt; paginationBar itemsPerPage=3 window=5 count='total_posts'}} 其中window是在分页栏中显示的页数。 您需要添加软件包 。 然后在您的...

    java实现的一个分页程序

    在Java编程语言中,分页程序是用于处理大量数据并将其以较小、可管理的块(页面)显示给用户的一种常见技术。这尤其适用于数据库查询返回的结果集过大,一次性加载到内存中会消耗大量资源或者导致性能下降的情况。在...

    简单分页系统示例

    这个“简单分页系统示例”是一个很好的学习资源,可以帮助我们深入理解分页机制的工作原理。 首先,我们需要了解分页的几个核心概念: 1. **页**:虚拟内存中的基本单位,通常是固定大小(如4KB)。 2. **页表**:...

    jsp+javabean 分页程序

    jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序 简单实用供初学者参考

    JDBC简单分页方案

    【JDBC简单分页方案】 在Java开发中,数据库记录的分页显示是常见的需求,尤其是在Web应用程序中。JDBC(Java Database Connectivity)是Sun公司制定的Java平台下的数据库连接标准接口,它提供了统一的方式来访问...

    java和mysql的分页程序

    本项目提供了一个基于Java后端和MySQL数据库的分页程序示例,方便开发者在构建Web应用时参考和使用。 首先,我们需要理解分页的基本概念。分页是将数据库中的大量记录分成若干页显示,用户可以逐页浏览,而不是一次...

    PHP分页程序,简单的分页函数

    这个“PHP分页程序,简单的分页函数”就是为了解决这个问题而设计的。分页不仅可以提高用户体验,避免一次性加载过多数据导致页面响应慢,还能使用户更方便地浏览和查找信息。 首先,我们需要理解分页的基本原理。...

    ssh实现简单分页功能

    在这个场景中,我们将讨论如何在SSH框架下实现一个简单的分页功能,以便用户可以更有效地浏览大量的数据。 分页是Web应用中常见的功能,它允许用户逐步查看大量数据,而不是一次性加载所有内容,从而提高页面加载...

    简单分页控件c#简单分页控件c#

    在具体实现时,`SimplePager.cs`文件可能包含了这个简单分页控件的类定义,包括属性(如每页记录数、当前页数等)、方法(如初始化控件、执行查询、更新UI等)和事件处理程序。通过阅读和理解这个源代码,开发者可以...

    明仔简单PHP分页程序.rar

    本程序“明仔简单PHP分页程序”便是一个实现这一功能的示例,它具有清晰的代码结构和详尽的注释,适合初学者理解和学习。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性获取所有数据可能会消耗大量...

    使用js实现简单分页

    本文将深入探讨如何使用JavaScript实现简单分页,并结合提供的分页模块进行分析。 首先,我们要理解分页的基本原理。分页通常涉及到两个关键参数:每页显示的数据量(items per page)和总数据量(total items)。...

    php分页程序代码,以及用例

    本压缩包提供的"php分页程序代码,以及用例",旨在提供一个简单易用但功能强大的分页解决方案。 该PHP分页类库名为PHPPager,它允许开发者轻松地将分页功能集成到自己的项目中。下面,我们将详细探讨这个分页程序的...

    jsp分页小程序

    【jsp分页小程序】是一个基于Java技术实现的简单分页应用程序。这个程序设计的主要目标是为数据展示提供一个用户友好的界面,允许用户逐步浏览大量的数据,而不是一次性加载所有记录,从而提高网页性能和用户体验。...

    用java写的分页程序

    这个“用Java写的分页程序”是一个实用的示例,它展示了如何在Java环境下实现基本的分页功能。 在Java中,我们可以使用多种方式来实现分页。一种常见的方式是通过JDBC(Java Database Connectivity)直接与数据库...

    明仔简单PHP分页程序.7z

    "明仔简单PHP分页程序"是一个可能包含实现这一功能的源代码包。 该程序的核心思想是利用PHP处理数据库查询结果,将大量数据分成多个小部分(每页)来展示。以下是一些关键知识点: 1. **SQL查询与LIMIT子句**:在...

    也许是目前最好用简单的分页控件

    在IT行业中,分页控件是一种常见的用户界面组件,它被广泛应用于数据量庞大的应用程序中,以帮助用户分阶段浏览和操作数据。标题所提到的“也许是目前最好用简单的分页控件”,暗示了我们讨论的是一种高效且易用的...

    一个简单易用的asp.net 分页程序

    在本教程中,我们将探讨如何在ASP.NET中实现一个简单易用的分页程序。 首先,我们需要理解分页的基本概念。分页是将大数据集分割成较小、易于管理的部分,每部分称为一页。这样用户无需滚动浏览所有数据,而是可以...

    小贤PHP通用分页程序

    【小贤PHP通用分页程序】是一个专门为PHP开发的实用工具,旨在帮助开发者轻松实现网页内容的分页显示。在网站开发中,当数据量过大时,一次性加载所有内容不仅会消耗大量服务器资源,也可能导致用户界面响应缓慢,...

Global site tag (gtag.js) - Google Analytics