当前位置: 首页 > news >正文

分页查询研究

分页的原理 :

client:

用户在页面上选择需要浏览的页面,并且将当前选择的页码pageNo和预期每页显示的数量pageSize传递到服务器。

server:

1、服务器接受到数据之后  计算出数据的总记录数量

2、并且根据 用户传递过来的pageNo和pageSize结合总数据量 计算出服务器对应的数据量

3、数据库返回查询的结果。

4、服务器将分页结果(当前分页数记录、上一页、下一页、总数据量)传递给用户。

 

	/*** 用户运行*/public static void client() {for (int i = 1; i < 10; i++) {System.out.println();System.out.println("-----start------");System.out.println("选择的参数:    ");int pagNo = i;int pagSize = 50;System.out.println("用户选择第:" + pagNo + "页");System.out.println("在选择页中 用户想查询的数据量:" + pagSize + "条");// 调用服务器Map map = server(pagNo, pagSize);if (map != null) {System.out.println("当前是:" + map.get("pageNo") + "页");System.out.println("上一页:" + map.get("prePage"));System.out.println("下一页:" + map.get("nextPage"));System.out.println("最后一页:" + map.get("totalPage"));System.out.println("总数据量:" + map.get("totalCount"));} else {System.out.println("没有第"+pagNo+"  页面 ,对不起不能查询了  ");}System.out.println();System.out.println("---------end--------");}}

 模拟一个客户端 将 pagNo和pagSize两个参数 传递给服务器

	/*** 服务器分页* * @param pagNo*            当前选择的页* @param pagSize*            当前页需要获取的数据量* @param count*            从数据量*/public static Map server(int pagNo, int pagSize) {// 1 计算这张表中总数据量(假设是 34条 一般就是查询count(*) 不带分页的值)int count = 34;Pagination pg = new Pagination(-1, pagSize, count);System.out.println();System.out.println("--server运行----");if (pagNo > pg.getTotalPage()) {return null;}// 2、将下面两个参数 传到数据库System.out.println("在数据表需要的参数:      ");System.out.println("开始索引:" + pg.getFirstResult());System.out.println("在数据表中 当前需要获取的数据量:" + pg.getPageSize());System.out.println();// 程序完毕之后需要获取的数据System.out.println("在数据表中 当前实际获取的数据量:" + pg.getTotal());System.out.println("总数据量:" + pg.getTotalCount());System.out.println();Map map = new HashMap();map.put("pageNo", pg.getPageNo());map.put("prePage", pg.getPrePage());map.put("nextPage", pg.getNextPage());map.put("totalPage", pg.getTotalPage());map.put("totalCount", pg.getTotalCount());return map;}
 

服务器接收后进行处理传递给客户端。

 

 

http://www.xdnf.cn/news/813817.html

相关文章:

  • 信息检索相关任务及数据集介绍
  • Android5 高级教程(三)
  • 英语词根词缀总结整合版
  • nginx配置使用笔记:三
  • 震撼!国产自研多环境开发软件 CEC-IDE 问世!遥遥领先!
  • C标准、C标准库、C++标准、C++标准库
  • 10个用于Android开发的有用的Kotlin库及示例
  • SMTP、ESMTP、POP3发送接收邮件
  • 启动应用程序出现mfc71u.dll找不到问题解决
  • PropertyGrid 用法,还没明白呢.
  • linux_i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
  • 【数学建模】基于matlab模拟报童问题仿真
  • uefi和legacy的区别对比
  • C#中当程序的访问权限不足时,Directory.Exists和File.Exists方法不会抛出异常报错...
  • Windows server 2012R2下IIS服务器的配置与管理
  • 局域网电脑入侵
  • Linux---Shell(使用技巧 与 变量)
  • 事件对象
  • 使用SWFUpload上传文件
  • 【实用工具系列】MathCAD入门安装及快速上手使用教程
  • 如何使用五笔输入法
  • ScaleAnimation开始结束位置分析
  • Ajax:万字总结黑马笔记,学懂Ajax看这一篇就够了
  • jQuery的基本使用
  • Eclipse Android开发环境搭建
  • 域渗透—域用户枚举与口令爆破
  • 6个月Python学习计划 Day 13 - 文件操作基础
  • 如何获取显卡的GPU占用率和显存占用情况
  • 新手小白零基础,该怎样学习编程呢?零基础入门到精通,收藏这一篇就够了
  • 搜索引擎的工作原理