javaweb实现分页查询(一)

举报
穆雄雄 发表于 2022/12/11 13:29:26 2022/12/11
【摘要】 大家好,欢迎来到雄雄的小课堂,昨天分享了个分页工具类,其实,也是为今天的分享做的铺垫,今天,给大家带来的是javaweb实现分页的全过程!前言:为什么需要分页?假设某大学有人数一万人,学生信息管理系统需要查询所有大学生的信息,那么就会将1w个学生的信息都查询的显示在页面中,管理员每次都需要不断的往下拖动页面才能浏览完所有学生信息,并且还容易看错行。有没有一种方法,既可以显示多条信息,又不用你...

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

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

实现分页的方式

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

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

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

实现分页的步骤

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的代码中做一个具体的案例。

欢迎关注公众号==雄雄的小课堂==

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。