美文网首页程序员
分页如何实现

分页如何实现

作者: stutterr | 来源:发表于2017-07-19 22:44 被阅读52次

前提

各个数据库分页语句不一样,已MYSQL语句为例

SELECT * FROM book b limit 3 , 5
表示从book表中的第三条数据开始 连续读出5条数据.

开始

  1. 在model包中创建一个pagination model
package com.gavin.exam.model;

import com.gavin.exam.util.PropertyUtil;

public class Pagination {

    private static final String KEY_PAGE_SIZE = "pagination.pageSize";

    private int totalCount;

    private int pageSize;  //每一页的数量  在外部定义
    private int pageCount;  //总共多少页  不提供set方法只提供get方法
                            //因为具体的可以通过totalCount和pageSize算出来

    private int currentPage; //当前第几页
    private int offset;   //偏移量

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getPageSize() {
        if(pageSize == 0) {
            String size = PropertyUtil.getProperty(KEY_PAGE_SIZE);
            pageSize = Integer.parseInt(size);
        }
        return pageSize;
    }

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

    public int getPageCount() {
        if (totalCount < 1) {
            pageCount = 0;
            return pageCount;
        }
        pageCount = (totalCount - 1) / getPageSize() + 1;   //totalCount-1考虑到整除的情况
        return pageCount;
    }

    public int getCurrentPage() {
        if (currentPage < 1) {
            currentPage = 1;
        }
        return currentPage;
    }

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

    public int getOffset() {
        offset = (getCurrentPage() - 1) * getPageSize();
        return offset;
    }
}
  1. 在servlet中获取currentPage 默认为1
    并进行一些必要的判断

  2. 在bookservice query中传入user_id 和pagination对象

  3. 进入Dao层次进行数据查询

DAO

  1. query(int userId,Pagination pagination)
  2. getTotalCount(userId)
  3. 返回数据

相关文章

  • 原生写分页

    思考 分页如何实现? 起始位置如何求得? 如何获取总页码? 代码如下

  • 分页如何实现

    前提 各个数据库分页语句不一样,已MYSQL语句为例 SELECT * FROM book b limit 3 ,...

  • 分页的几种实现方式

    一:分页的几种实现方式 1.1:手动实现一个分页 1.2通过 sql语句 实现分页 1.3...

  • 分页组件的简单实现(初稿)

    分页功能是后台管理系统中很常见的一个功能,今天我们就来看下如何实现一个简单的分页组件。 初步实现 首先从最简单的情...

  • 如何实现分页功能

    前沿 这篇文章仅适用于新手使用语言为PHP正文 一、基础知识 (一)通过get方式传递参数 与提交表单不同,分页一...

  • 实现一个简单的瀑布流

    知识点快速积累:1 页面元素的绝对位置如何计算2 ajax如何实现异步请求3 如何实现图片的分页加载 一 将基于j...

  • Vue实现分页操作

    1,分页时候引入vue自带的分页组件实现: (1)

  • QSortFilterProxyModel + Qml Lisv

    在前端开发中,我们经常要实现分页内容,这里介绍如何通过QSortFilterProxyModel + Qml Li...

  • Django自定义分页功能的实现

    前言:本文介绍在Django中如何通过前后端代码实现页面自定义分页功能,详细介绍实现原理,并附实现代码。 实现的功...

  • Django3.0实践五(restFramework自定义分页)

    一.基于PageNumberPagination实现分页 Rest Framework分页参考地下:https:/...

网友评论

    本文标题:分页如何实现

    本文链接:https://www.haomeiwen.com/subject/eurrkxtx.html