java怎么实现分页分页代码_Java简单分页功能的实现代码

2023-11-10

网页内容多了我们就会想到分页功能,分页功能既能减少页面体积还能提升加载速度,因此我门就要学会实现简单的分页功能,那么我们现在就去看看Java简单分页功能的实现代码吧。

不用根据改变SQL的形式去查询;

直接查询所有的数据,根据页码自动显示数据;

分页对象

public class PageUtils implements Serializable {

/**

*

*/

private static final long serialVersionUID = -5247614532234782640L;

public final static String PAGE = "page";

public final static String PAGE_NO = "pageno";

public final static String PAGE_SIZE = "pagesize";

private long pageSize=10;//每页显示记录数

private long firstResult=0;//当页第一条记录号

private long totalCount;//总记录数

private long totalPage;//总页码

private long pageNo=1;//当前页码

private List> sumData;//此集合可用来保存 合计数据

private List> data;//查询结果

public long getPageSize() {

return pageSize;

}

public void setPageSize(long pageSize) {

this.pageSize = pageSize;

}

public long getFirstResult() {

if(pageNo>0){

firstResult=pageSize * (pageNo -1);

}else{

firstResult = 0;

}

return firstResult;

}

public long getNextPageResult(){

if(pageNo>0){

return pageSize*(pageNo-1);

}else{

return pageNo;

}

}

public void setFirstResult(long firstResult) {

this.firstResult = firstResult;

}

public long getTotalCount() {

return totalCount;

}

public void setTotalCount(long totalCount) {

this.totalCount = totalCount;

totalPage = this.totalCount/pageSize;

if (totalPage == 0 || totalCount % pageSize != 0) {

totalPage++;

}

}

public long getTotalPage() {

return totalPage;

}

public void setTotalPage(long totalPage) {

this.totalPage = totalPage;

}

public long getPageNo() {

return pageNo;

}

public void setPageNo(long pageNo) {

this.pageNo = pageNo;

}

public List> getData() {

return data;

}

public void setData(List> data) {

this.data = data;

}

/**

* 是否第一页

*/

public boolean isFirstPage() {

return pageNo <= 1;

}

/**

* 是否最后一页

*/

public boolean isLastPage() {

return pageNo >= getTotalPage();

}

/**

* 下一页页码

*/

public long getNextPage() {

if (isLastPage()) {

return pageNo;

} else {

return pageNo + 1;

}

}

/**

* 上一页页码

*/

public long getPrePage() {

if (isFirstPage()) {

return pageNo;

} else {

return pageNo - 1;

}

}

public PageUtils(){}

public PageUtils(long pageNo){

this.pageNo=pageNo;

}

public PageUtils(long pageNo,long pageSize){

this.pageNo=pageNo;

this.pageSize = pageSize;

}

public List> getSumData() {

return sumData;

}

public void setSumData(List> sumData) {

this.sumData = sumData;

}

}

查询的数据实体

在查询的实体里添加页码和每页显示条数参数;

private int pageSize; //每页显示的条数

private int pageNo; //当前页码

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

控制层Controller

@RequestMapping("/list")

public String list(Model model,ChannelValueInfoView input) {

// input:传入的参数为对象

PageUtils page=new PageUtils();

//如果传入的当前条数为0,则赋予值(首次查询不带参);

if(input.getPageSize()==0){

//当前页码第一页

input.setPageNo(1);

//每页显示条数,当前每页显示10条数据;

input.setPageSize(10);

}

page.setPageNo(input.getPageNo());

page.setPageSize(input.getPageSize());

//核心分页代码

PageHelper p=new PageHelper();

Page l=p.startPage(input.getPageNo(),input.getPageSize());

//紧跟着的第一个select查询将会被分页

channelValueService.getChannelValueInfoViewList(input);

model.addAttribute("input", input);

page.setData(l);

page.setTotalCount(l.getTotal());

model.addAttribute("page", page);

return "index";

}

页面处理

//循环穿过来的PAGE.data数据

----------

总数:0

----------

function onFirst() {

onList(1);

}

function onPre() {

var beginRow = parseInt($('#beginRow').html());

if (beginRow - 1 > 0) {

onList(beginRow - 1);

}

}

function onNext() {

var beginRow = parseInt($('#beginRow').html());

var totalCount = parseInt($('#totalCount').html());

var pageSize = parseInt($('#pageSize').val());

if (parseInt(totalCount / pageSize + 1) > beginRow + 1) {

onList(beginRow+1);

}

}

function onLast() {

var totalCount = parseInt($('#totalCount').html());

var pageSize = parseInt($('#pageSize').val());

onList(parseInt(totalCount / pageSize + 1) - 1);

}

function onList(pageNo) {

if (pageNo == 0)

pageNo = 1;

$('#pageNo').val(pageNo);

$("#content_form").submit();

}

以上就是Java简单分页功能的实现代码,实现java分页功能的方法是非常简单的,我们只需要根据上述步骤即可完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java怎么实现分页分页代码_Java简单分页功能的实现代码 的相关文章

  • GD32F103使用DMA方式实现ADC0数据循环采集

    选择合适的DMA通道 ADC0使用ch0 brief configure the DMA peripheral param in none param out none retval none void dma config void AD
  • ST MCU Finder:MCU/MPU选型神器

    点击上方蓝字 关注我们 1 ST MCU Finder简介 ST MCU Finder 是 ST MCU生态系统中的选型工具 也内嵌在STM32CubeMX 和 STM32CubeIDE 中 具有相同的数据基础 可以通过在电脑端安装ST M
  • heartbeat mysql nfs 高可用mysql集群

    一 环境准备 二 拓扑结构 三 安装heartbeat 四 配置NFS服务 五 安装mysql 六 crm 配置资源 一 环境准备 操作系统 centos 6 4 x86 64 最小化安装 如使用yum 安装的方式 centos5 5 安装
  • Object类型数据转化为json字符串工具类

    Object类型数据转json字符串 package com xxxxx emis base util import com fasterxml jackson annotation JsonFilter import com faster
  • 2022Robocom(本科组)RC-u2 智能服药助手

    智能看护中很重要的环节是安排需要服药的老年人的服药计划 已知机器人需要照顾的某位老年人需要服用 N 种药物 但某些药物不宜间隔过短服用 比如降糖药一般遵医嘱日服 3 次 两次之间需要间隔至少 4 小时 当需要服用的药物比较多 医嘱比较复杂时
  • 深入理解PoW共识

    前言 上一篇文章中大概介绍了一下目前区块链应用中的几种常用的共识机制 本篇将重点聊一下区块链之一的PoW共识机制 以及它的实现原理和代码实现 PoW Proof of Work 工作量证明 其核心设计思路是提出求一个复杂度计算值的运算过程
  • 多播与广播原理分析及区别

    1 0 广播 广播的用途 假定服务器主机在本地局域网上 但不知道它的单播IP地址时对它进行定位 即进行资源发现 当有多个客户和单个服务器通信时 减少局域网上的数据流量 使用广播的因特网应用的例子 ARP协议通过链路层广播定位具有指定IP地址
  • RS485通信(Modbus)丢包解决经验(基于ARM/Linux和STM32平台)

    1 RS485通信属于半双工通信 即发送和接收不能同时进行 需要切换 一般定义一根GPIO做RTS切换 2 ARM Linux平台有Linux底层驱动做自动切换 比如应用程序发送完成后 一般会在底层驱动自动切换接收 3 但是STM32平台基
  • 【工作中常用工具类,提升开发效率】

    JDK常用工具类 JDK中常用工具类 集合工具类 Collections 数组工具类 Arrays 对象工具类 Objects 文件工具类 Files 路径工具类 Paths TimeUnit 线程sleet System JDK中常用工具
  • C++基础知识 - C++的类型转换

    类型转换使用建议 static cast静态类型转换 编译的时c 编译器会做编译时的类型检查 隐式转换 基本类型转换 父子类之间合理转换 若不同类型之间 进行强制类型转换 用reinterpret cast lt gt 进行重新解释 建 议
  • 京东联盟导购平台开发指南(附带API接口)

    一 写在前面 做过淘客开发的一定接触过淘宝API开发 而做京东联盟软件自然离不开京东联盟API 京东联盟API目前上线的有很多 如下图 https jos jd com api list htm id 117 但是京东联盟API获取比较难
  • 遭遇HTML被恶意注入JS弹广告,通过SSL证书学习及安装

    起因 近期有客户反映界面错乱 本能的以为是缓存原因导致的 告知方法 操作无效 远程查看发现代码里面突然多了一句 http 45 32 21 251 1 js 好了 有线索就开始跟 if typeof PinkFlag undefined v
  • vue使用jsencrypt实现rsa前端加密

    实现 RSA 加密 介绍 vue 完成 rsa 加密传输 jsencrypt 实现参数的前端加密 1 安装 jsencrypt npm install jsencrypt 2 编写 jsencrypt js 在 utils 文件夹中新建 j
  • 数据可视化——Davinci

    数据可视化 Davinci对比及功能使用 文档地址 一 数据可视化 个人引用部分 1 有趣的意义 2 常规的意义 二 图形的内涵 1 图形类型 2 优秀可视化的特点 三 可视化需求分析 1 四个问题 2 三个沟通点 四 Davinci功能详
  • 二分查找 —— 有序数组不小于(不大于)某数的第一个(最后一个)元素

    1 不小于某数的第一个元素 def bisearch l e lo hi while lo lt hi mi lo hi 2 if e gt l mi lo mi 1 else hi mi return hi 注 1 不同于寻找等于某值的情
  • 【C】PTA期末分数排序(归并排序)

    考试结束了 全班同学的分数都出来了 老师需要对分数做一次排序 看看从高到低 分数的排列是怎样的 输入格式 第一行是一个n 表示班级同学的人数 1 lt n lt 500000 第二行开始有n个分数 0 lt 分数 lt 100 分数都是整数
  • [从零开始学习FPGA编程-23]:进阶篇 - 基本组合电路-门电路级组合逻辑运算(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 125246093 目录 前言 第1章
  • 排序函数 dense_rank()

    dense rank 对结果集进行排序 排名值没有间断 特定行的排名等于该特定行之前不同排名值的数量加一 语法 DENSE RANK OVER
  • error when starting dev server: Error: Cannot find module ‘node:url‘

    需要升级node版本 直接在官网 下载 Node js 上下载最新的msi 安装到原来node的安装目录下即可

随机推荐

  • 降雨预测方法

    降雨预测方法 DBNPF Deep Belief Network for Precipitation Forecast 来源 张雷师兄论文 A deep learning based precipitation forecasting 模型
  • centos 7 安装总结

    CentOS Community ENterprise Operating System 社区企业操作系统 Linux发行版之一 来源于Red Hat Enterprise Linux依照开放代码规定释出的源代码所编译而成 安装注意 安装c
  • 如何用python爬取大量博客

    如果要使用 Python 爬取大量博客 可以使用爬虫框架 例如 Scrapy 首先 需要对目标网站进行分析 确定数据的 URL 格式和数据的 HTML 标签 然后 可以使用 Scrapy 来编写爬虫代码 自动访问目标网站并提取需要的数据 具
  • 在 CLion 中进行整体替换代码

    突然在打题的时候发现int型无法满足题目要求 想要批量换成long long 使用快捷键 Ctrl Shift R Windows Linux 或 Command Shift R Mac 来打开 Find and Replace 对话框 在
  • 第一章 python初窥 课后练习题

    目录 1 输入1 127的ascii码并输出对应字符 2 输入a b c d4个整数 计算a b c d的结果 3 计算一周有多少分钟 多少秒钟 4 3个人在餐厅吃饭 想分摊饭费 总共花费35 27美元 他们还想给15 的小费 每个人该怎么
  • SpringBoot: Mybatis配置事务管理

  • awk 正则表达式、正则运算符详细介绍

    http www cnblogs com chengmo archive 2010 10 11 1847772 html 前言 使用awk作为文本处理工具 正则表达式是少不了的 要掌握这个工具的正则表达式使用 其实 我们不必单独去学习它的正
  • STM32CubeMX—串口空闲中断+DMA接收

    一 实验说明 实验平台 STM32F103C8T6 实验内容 使用串口一空闲中断结合DMA 完成不定长数据接收 STM32的串口接收数据的方式 1 轮询接收 所谓轮询 就是在主函数中判断接收完成的标志位 举个不太恰当例子 就比如 此时你正在
  • 【8086汇编】字符串逆序的实现,附代码

    目录 引言 题目 程序思想 程序例程 程序结果 改进思路 引言 之前有本科的同学需要做一个汇编程序 简单补了补发现自己会嘻嘻嘻 题目 题目 从键盘输入任一字符串 字符数 gt 1 在下一行以相反的次序显示出来 如 输入字符串123abc 在
  • 企业微信三方应用开发(三)企业微信第三方应用开发常见问题

    加我微信li570467731 拉你进二百多人企业微信开发同行群 文末有二维码 企业微信开发三部曲 企业微信应用开发概述篇 免费 已完结 企业微信开发第三方应用开发篇 更新中 企业微信开发自建内部应用开发 筹备中 关注公众号 ToB Dev
  • 详细解析Python爬虫代理的使用方法

    嗨 大家好 作为一名专业的代理IP供应商 我想和你们聊一聊爬虫中常用的代理IP类型以及如何在Python中使用代理IP 相信这篇文章会让你对Python爬虫代理IP的使用有更深入的了解 那么 不多说 让我们开始吧 首先 让我们来了解一下爬虫
  • Java基础——环境变量配置、注释、关键字、标识符

    目录 01 01 计算机基础知识 计算机概述 01 02 计算机基础知识 软件开发和计算机语言概述 01 03 计算机基础知识 人机交互 01 04 计算机基础知识 键盘功能键和快捷键 01 05 计算机基础知识 如何打开DOS控制台 01
  • mes选型与实施指南_中小制造企业,如何选型信息系统?

    一 前言 最近走访客户和讲课比较多 接触到了大量的中小制造企业 深刻体会到了制造企业的焦虑 也深刻体会到了中小企业期望进行数字化转型 期望实现智能制造的迫切愿望 但是受限于人才 受限于知识 受限于经验 对实现企业信息化的过程中 过多受到乙方
  • Revit 2011二次开发之得到选择的对象

    start Transaction TransactionMode Manual Regeneration RegenerationOption Manual public class Document Selection IExterna
  • 微前端介绍

    提到微前端 稍微懂微前端的同学 可能会这样问 为什么不用iframe方案呢 其实 如果不考虑体验问题 iframe方案几乎是最完美的微前端解决方案 iframe最大的特性就是提供了浏览器原生的硬隔离方案 样式隔离 js隔离 但它最大的问题也
  • 韦东山嵌入式教程第四篇Linux驱动基础知识学习笔记(1)——Hello驱动程序

    驱动入门 Hello驱动程序 1 怎么写出一个驱动程序 确定主设备号 定义自己的file operations结构体 实现对应的open read write函数 填入file operations结构体 实现入口函数 安装驱动程序时 就会
  • 软件设计模式----访问者模式

    访问者模式 模式动机 对于系统中的某些对象 它们存储在同一个集合中 且具有不同的类型 而且对于该集合中的对象 可以接受一类称为访问者的对象来访问 而且不同的访问者其访问方式有所不同 访问者模式为解决这类问题而诞生 在实际使用时 对同一集合对
  • img固件修改_完整恢复玩客云官方固件,恢复迅雷下载和备份

    写在最前 刷了各种固件 最后都不是很满意 还是喜欢玩客云的下载和备份功能 就想着怎么恢复 先上一张照片 这是等待了2天后才写的这个教程 下载速度还可以 毕竟宽带才30M 文末再放些完成后的照片 在整个过程中 可能会遇到失败 需要冷静的再尝试
  • 基于Arnold变换的图像置乱-Matlab实现

    Arnold变换是俄国数学家VladimirI Arnold提出的一种变换 一幅M N的数字图像的二维Arnold 变换定义为 xn 1yn 1 1abab 1 xnyn mod N x n
  • java怎么实现分页分页代码_Java简单分页功能的实现代码

    网页内容多了我们就会想到分页功能 分页功能既能减少页面体积还能提升加载速度 因此我门就要学会实现简单的分页功能 那么我们现在就去看看Java简单分页功能的实现代码吧 不用根据改变SQL的形式去查询 直接查询所有的数据 根据页码自动显示数据