javaweb中实现分页,持续更新……

大家好,欢迎来到雄雄的小课堂,昨天分享了个分页工具类一个简单的分页工具类,其实,也是为今天的分享做的铺垫,今天,给大家带来的是javaweb实现分页的全过程!

前言:为什么需要分页?假设某大学有人数一万人,学生信息管理系统需要查询所有大学生的信息,那么就会将1w个学生的信息都查询的显示在页面中,管理员每次都需要不断的往下拖动页面才能浏览完所有学生信息,并且还容易看错行。有没有一种方法,既可以显示多条信息,又不用你拖动页面呢?答案当然是有的,那就是我们今天所有看的分页!

01

实现分页的方式

其实,实现分页的方式有好多种,一种是直接将需要查询的数据一次性查询出来,放在一个集合中,每次在集合中遍历出需要展示的数据即可。但是,这种方法是有缺点的,第一,看到的数据可能不是最新的,比如实时更新的数据(股票、外汇数据)肯定不能用这种方式。其次,如果数据库中有几万条数据的话,这么一次都查询出来往集合中扔,效率是非常低下的,耗时也很多。

第二种实现分页的方式就是,我们可以从数据库中查询我们每页所需要的数据,比如每页显示5条,那你就在数据库中查询5条,实时从数据库中查询,一来避免了数据库过大性能的问题,二来,由于每次都是从数据库中实时查询的,所以也就不会存在数据过期问题了。

今天,我们就用第二种方式来实现分页。

02

实现分页的步骤

1.确定页大小(每页显示的数据量)

这个其实很好理解,每页显示5条,就设置5条即可,每页显示10条,就设置10条,当然,这个每页显示的数据量也可以交给用户决定。

2.计算显示的总页数

有了每页显示的条数,在给你所有条数,你会不会算一共有多少页?就像一共有21个鸡蛋(总记录数)需要给篮子里面装,每个篮子最多只能放5(每页显示的数据量)个,那么你需要多少个篮子才能把21个鸡蛋都放完?怎么算?

21/5=4余1,余下来的这一个怎么办?当然是在找个篮子放进去,这样的话,我们就需要4+1个篮子。

数据也是这样的,如果有19条数据,每页显示5条,需要多少页?

19/5=3余4,那最后总页数就是3+1,4页!

思维转换到java中,代码如下:

总页数 = 总记录数%页大小==0?总记录数/页大小: 总记录数/页大小+1;

那有同学会问,老师,总记录数咋来的,你也没告诉我啊?总记录数我们只需要一条sql语句就搞定了,如下:

Selct count(*) from student;

3.写分页的sql语句

目前我们就以mysql为例,mysql中分页的语法如下:

Select * from student limit 0,5;

其中student为数据表0为偏移量,动态的,5为页大小,固定的。

假使我们取第一页数据,不需要便宜,那偏移量就是0,如果我们取第二页的数据,需要从第六条开始显示,需要越过第一页的1-5条数据,偏移量得从6开始,可以总结出一个规律,那就是:

偏移量=(当前页-1)*页大小

例如,第三页的偏移量,即:(3-1)*5=10;

今天我们就先看这些,明天将今天的理论知识运用到javaweb的代码中做一个具体的案例。

往期精彩

一个简单的分页工具类

2020-11-23

javaWeb中,如何通过Commons-FileUpload组件上传文件

2020-11-22

多功能语音播放器

2020-11-21

CSS动画示例(上一篇是CSS过渡…)

2020-11-20

CSS3中的动画示例

2020-11-19

CSS3的几个变形案例……

2020-11-18

点分享

点点赞

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis(入门)

文章目录一、 Redis简介二、 基于Docker安装Redis单机版三、 Redis常用命令1 Key操作2 字符串值(String)(值的长度不超过512MB)3 哈希表(Hash)4 列表(List)5 集合(Set)6 有序集合(Sorted Set)四、 Redis持久…

浅析神经网络为什么能够无限逼近任意连续函数

转载自 浅析神经网络为什么能够无限逼近任意连续函数 神经网络为什么能够无限逼近任意连续函数? 下面通过一个分类例子一步一步的引出为什么神经网络能够无限逼近任意函数这个观点,并且给出直观感觉! 我们首先有这个需求,需要将下面的数据…

前端模块化工具--webpack学习心得

话说前头 webpack前段时间有听说一下,现在已经到了3.x的版本,自己没去接触。因为之前使用gulp来作为自己的项目构建工具。现在感觉gulp使用的趋势在减少。现在这段时间去接触了webpack,感觉很不错,它的模块化打包机制&#xff0c…

基于.NET CORE微服务框架 -谈谈surging的服务容错降级

一、前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation 以方便国内.net core开源项目的推广,我果断接受邀请加入了队伍进行互相交流学习,最近也更新了surging新的…

java中部的分页实现(二)

大家好,欢迎来到雄雄的小课堂,昨天分享了关于分页查询的理论知识,今天我们就来结合代码和案例实际的应用一下,方便大家理解。前言:我们都知道,实现分页需要三个步骤。第一,确定页大小&#xff0…

SpringSecurity授权(访问控制)

一、 访问控制url匹配 在前面讲解了认证中所有常用配置,主要是对httpSecurity.formLogin()进行操作。而在配置类中httphttpSecurity.authorizeRequests()主要是对url进行控制,也就是我们所说的授权(访问控制)。httpSecurity.autho…

剥析surging的架构思想

1、前言 前面第一篇阐述了采用基于.NET CORE微服务架构,应用surging服务端与客户端之间进行通信的简单示例以及对于surging服务化框架简单介绍。在这篇文章中,我们将剥析surging的架构思想。 surging源码下载 2、通信机制 2.1 简介 在单体应用中&am…

javaweb实现分页(二)

前言:我们都知道,实现分页需要三个步骤。第一,确定页大小(每页显示的数据量)。第二,计算显示的总页数。第三,写分页的sql语句。这三步已经在昨天的推文中详细说明,需要的可以点击这里…

滴滴出行基于RocketMQ构建企业级消息队列服务的实践

转载自 滴滴出行基于RocketMQ构建企业级消息队列服务的实践 本文整理自滴滴出行消息队列负责人 江海挺 在Apache RocketMQ开发者沙龙北京站的分享。通过本文,您将了解到滴滴出行: 1. 在消息队列技术选型方面的思考; 2. 为什么选择 RocketMQ…

[信息安全] 1.密码工具箱

0. 何谓安全? 对于信息安全性的重要性,我想大家都不会否认。那么具体来说应该具有哪些特性才能称之为安全呢?举个简单的例子:我给你发送一条消息“借给我100元”,当你收到这条消息并且处理后你的账户里面会少出来100块…

深入理解TCP/IP协议-TCP建立与终止连接

转载自 深入理解TCP/IP协议-TCP建立与终止连接 一、引言 TCP 是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。连接创建与终止的状态变化图如下: 二、三次握手建立连接 过程如下: 客户端发送一个 SY…

在Docker中运行asp.net core 跨平台应用程序

概述 Docker已经热了有一两年了,而且我相信这不是一个昙花一现的技术,而是一个将深远影响我们日后开发和部署、运营应用系统的一种创新(很多人将其作为devops的一种非常重要的基石)。学习docker的最好方式,莫过于它的…

java中的Queue队列的用法

大家好,欢迎来到雄雄的小课堂,今天给大家分享的是“java中的Queue队列的用法” 前言:好多人对Queue不是很熟悉,毕竟平时也不怎么用,遇到集合要么List要么map这些常用的,殊不知,java中还有个Que…

SpringCloud Netflix Eureka

文章目录一、 Eureka简介Eureka组件二、 Eureka和Zookeeper 对比1 什么是CAP定理2 基于CAP定理比对Eureka和Zookeeper三、 搭建Eureka注册中心1 POM文件2 配置文件application.yml3 启动类4 访问Eureka Server WEB服务管理平台四、 Eureka 服务管理平台介绍1 Eureka Server服务…

使用枚举定义常量更好点儿

大家好,欢迎来到雄雄的小课堂,昨天给大家分享的是“java中的Queue队列的用法示例”,今天,分享的主题是“java中,推荐使用枚举定义常量”。 前言:常量,相信大家多不会陌生,常量值一般…

SpringCloud Netflix Ribbon

文章目录一、 Ribbon简介二、 使用Ribbon开发微服务1 创建springcloud工程 和 commons子模块2 开发服务提供者 - ribbonappservice3 开发服务消费者 - ribbonappclient三、 集中式与进程内负载均衡区别四、 Ribbon常见的负载均衡策略1 Ribbon中的常用负载均衡简介2 配置负载均衡…

Entity Framework Core 生成跟踪列

注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布时,功能可能存在变动。 当您设计数据库时,有时需要添加列以跟踪记录何时更改,以及谁进行了更改。例如,您添加以下列: Cre…

老师,我们想看到您的笑容!

“老师,你可以对我们笑笑吗?”今天偶然遇见一位学生在吃饭的路上和我说道。我冲他点了点头,笑道:“好呀”!是啊,我是好久没有把笑声带回班级中了。1目前,4班都在倾尽全力的做项目,试…

阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

转载自 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设 本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本。随后,Spring Cloud…

微软发布Azure Stack更多细节,预计9月交付

在近日举行的微软全球合作伙伴大会上,微软宣布Azure Stack现在开始接受预定,预计9月份就可以交付。Azure Stack是微软公有Azure云的私有云实现。和其他私有云提供商不同,微软将把Azure Stack作为一项基于消费的服务,这和其公有云的…