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…

ssl1333-地鼠的困境【二分图,最大匹配,图论】

正题 大意 有n个地鼠有m个地洞&#xff0c;每只地鼠的速度都是v。若不在s秒之内回到地洞就会狗带&#xff0c;每只地洞只能躲一只地鼠&#xff0c;求能活下来多少只 代码 #include<cstdio> #include<cstring> #include<cmath> using namespace std; struct…

javaweb实现分页查询(一)

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;昨天分享了个分页工具类&#xff0c;其实&#xff0c;也是为今天的分享做的铺垫&#xff0c;今天&#xff0c;给大家带来的是javaweb实现分页的全过程&#xff01; 前言&#xff1a;为什么需要分页&#xff1f;假设某大学有…

eclipse搭建多module项目的坑

一、eclipse坑 1、低版本eclipse没有jdk1.8 2、默认使用jre库作为工作空间jdk&#xff0c;项目build path绑定jre&#xff0c;而Maven项目需要jdk 3、Maven项目经常抛错&#xff0c;工作空间和项目缓存了Maven错误信息 二、Maven坑 1、仓库没有包&#xff0c;生成xxx.lastU…

SpringSecurity认证

一、 Spring Security简介 1 概括 Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能&#xff0c;为系统提供了声明式安全访问控制功能&#xff0c;减少了为系统安全而编写大量重复代码的工作。 使用Spring Secruity的原因有很多&#xff0c;但大部分都…

【2018.4.7】模拟赛之一-ssl2382 K好数【数位dp】

正题 大意 如果一个数每一位都小于k那么这个数是好数。给出n和k&#xff0c;求1-n里有多少个好数。 解题思路1 将起改为一个k1进制的数&#xff0c;那么每次加1后这个数都是好数。然后判断一下是否大于n&#xff08;十进制的情况下&#xff09; 解题思路2 数位dp&#xff0…

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

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

java中部的分页实现(二)

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

artTemplate的空白输出坑

一、问题现象 <script type"text/html" id"man_template">{{each list as v i}}<tr><td>{{v.name}}</td><td>{{v.height}}</td><td>{{v.age}}</td></tr>{{/each}} </script> <script>…

SpringSecurity授权(访问控制)

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

剥析surging的架构思想

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

【2018.4.7】模拟赛之二-ssl2383 睡眠【水题】

正题 大意 输入两个时间点表示起床的时间和睡了多久求开始睡觉的时间 解题思路 直接计算&#xff0c;水题不解释 代码 #include<cstdio> using namespace std; int h1,m1,h2,m2; int main() { scanf("%d:%d %d:%d",&h1,&m1,&h2,&m2);h1-h…

javaweb实现分页(二)

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

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

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

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

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

【2018.4.7】模拟赛之三-ssl2384 字符串【字符串】

正题 大意 给一个字符串&#xff0c;求有多少个区间中含有”bear” 解题思路 直接寻找bear&#xff0c;然后计算有该bear的区间数&#xff0c;注意去重。 比如”bearbear”那么[1-8]这个区间会重复查找到&#xff0c;所以我们就只需要找到上一个bear的位置就好了 代码 #inc…

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

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

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

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