大家好,欢迎来到雄雄的小课堂,昨天分享了个分页工具类,其实,也是为今天的分享做的铺垫,今天,给大家带来的是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的代码中做一个具体的案例。

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

javaweb实现分页查询(一)相关推荐

  1. 关于JavaWeb的分页查询的实现

    思路: 1.首先先对显示信息的页面的对象进行封装,以便后面的调用 2. 控制层(controller)获取查询条件以及当前页码,将参数传递业务逻辑层(service) 3. 业务逻辑层(service ...

  2. javaweb的struts2的分页查询操作

    javaweb的struts2的分页查询操作 分页查询的实现: 1.利用action完成 action有成员变量: 除了实体对象的属性还有 // 分页显示 public int totalRecord ...

  3. JavaWeb入门之简单分页查询功能实现

    一.MySql实现分页查询的SQL语句 1.分页需求: 客户端通过传递pageNo(页码),counter(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函 ...

  4. jdbc结合sqlserver的javaWeb工程的分页查询共通操作代码

    搜索这个标题找到一篇文章: 适用所有使用jdbc结合sqlserver的javaWeb工程的分页查询共通操作代码 http://alexlsg.iteye.com/blog/700015 看了之后,试 ...

  5. javaweb分页查询oracle,JavaWeb项目 利用Oracle数据库实现分页查看细讲

    一.了解数据库指令 Oracle数据库相对于MySQL数据库来说,要实现分页查看,Oracle中没有像MySQL里的limit命令,使用的Oracle语句也比较复杂 select * from (se ...

  6. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  7. javaweb实现分页(二)

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

  8. 基于javaweb最短路径公交查询系统设计与实现(论文下载)

    [摘 要]随着互联网的技术的不断更新发展,人们生活节奏也在不断的加快,对于网络的依赖也越来越紧密,尤其是在等公交,经常会错过班次,但又不知道,下次班次几点发车,这样会导致乘客花掉大把时间在等待,如果可 ...

  9. mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...

最新文章

  1. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl
  2. navigation的pushViewController卡顿问题
  3. 部署ajax服务-支持jsonp
  4. 演示: GTS流量×××和CAR流量监管的效果及相关实践计划
  5. 总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程
  6. 使用微信JSSDK自定义微信分享标题、描述、和图标
  7. java 并发容器类实验_Java多线程并发编程中并发容器第二篇之List的并发类讲解...
  8. python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)
  9. eclipse如何导入okhttp 2.x源码
  10. linux合并ts文件吗,UNIX LINUX MACOS shell 下载合并*.ts视频
  11. mysql数据库中eof_数据库eof
  12. 2017-2018-2 1723《程序设计与数据结构》实验四 实验五 课程总结 总结
  13. windows2019关闭Windows server的IE浏览器的增强安全配置
  14. 齐齐哈尔大学计算机考研资料汇总
  15. 【12306刷票必备!!!】12306订票助手----无所不能的谷歌浏览器chrome插件
  16. 测试语文读音标准的软件,普通话发音测试题库手机版apkv3.3.1安卓最新版
  17. 问题 G: 学号识别
  18. 细说字体 Sans Serif 与 Serif
  19. 变量提升和函数提升哪个优先
  20. nz-table数据动态横向合并

热门文章

  1. [蓝桥杯2018初赛]字母阵列-单向dfs
  2. c语言中如何使用面向对象编程,如何使用C语言的面向对象
  3. mysql 5.74安装教程_MySQL安装、基本账户安全(5.0以后版本)
  4. catia如何整列加工_CATIA V5 R20加工模块的自动编程方法
  5. CoreJava 笔记总结-第十二章 并发-1
  6. 数据结构-第九章 内部排序-知识点总结1
  7. 星光计划计算机,上海星光计划第七届职业院校技能大赛.PDF
  8. 牛客网【每日一题】5月27日题目精讲 货币系统
  9. CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)
  10. P3177-[HAOI2015]树上染色【树形dp】