`

分页查询研究

阅读更多

分页的原理 :

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;
	}

 

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

 

 

分享到:
评论

相关推荐

    基于SSH架构的分页查询标签的研究与实现

    针对目前分页查询问题解决方案较为复杂、不易维护的问题,运用JSP自定义标签技术和HQL语言,提出了一个在SSH架构下的解决方案.该方案可有效地使分页面板的显示、处理与JSP页面分离,使用简单,功能完整,并已经成功运用于...

    Django 框架Web 数据查询分页技术研究

    为了探索Django 框架下Web 数据查询分页的实现方法及性能,本文先对Web 数据查询分页的执行过程和在 其它框架下常用的分页方法进行了分析研究。在此基础上,提出了在Web 服务层和在数据库服务层分页两种方案 ...

    mysql oracle和sqlserver分页查询实例解析

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习….. (一)、mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: ...

    JSP网页制作分页查询功能

    这个是通过学习后我自己研究的分页查询,逻辑紧密,感觉还是不错的,希望能给需要的朋友以参考

    jquery 真正 分页 无刷新

    1.真正分页, 只取需要的数据; 2.无刷新; 3.高效简洁; 4.基于jquery和.net(vs2008),适合GridView,Repeater等一切数据控件;(有时间再做一个java版的, 当然, 其实思路是一样的, java的同志也可以下载了研究一下, 不难的...

    ASP.NET中数据列表分页方法研究

    在以数据为中心的动态Web应用...本文结合ASP.NET与SQL(结构化查询语言)编程特性,深入研究了多种分页显示方法,并进行了相关性能的分析与比较,从而为不同应用环境而选用不同的分页技术,提供了较为完整的技术参考

    ADO分页显示源代码

    1、这个小程序演示了如何使用原生ADO对查询出的数据进行分页显示; 2、我们平时看到的网页新闻列表就是分页显示的结果,是VBScript编写网页的一项基本技巧,不过到了Delphi中都成了稀罕东西了; 3、一些朋友也研究过...

    个人财务管理系统,实现了分页查询,向datagridview中增加数据库中不存在的列(C#源码)

    1.实现了分页查询 2.使用循环向datagridview中增加数据库中不存在的列 3.对sqlserver中字符串转换为smalldatetime/datetime时出现的数据类型转换错误有了很好的解决 注意:在业务逻辑层没有做数据验证,请大家使用时...

    海量数据库的查询优化及分页算法方案

    本资料只是供一些爱好研究数据分页的人士参考 海量数据库的查询优化及分页算法方案

    Servlet和JSP使用JDBC实现客户管理系统的增删改查curd+分页查询功能.zip

    java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,...

    mssql 高效的分页存储过程分享

    最近在做一个几百万条数据的分页查询,研究了各种方案,在本机上用项目的实际数据库做测试,测试过程 is very 痛苦,不堪回首ing。现在废话不多说,直接上结果,相信这也是大多数搜索答案的人最愿意看的方式。  ...

    可用于自学与研究MpPlus.zip

    mybatis-pus的多表联查,分页查询

    sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

    最近发现现有框架的通用查询存储过程的性能慢,于是仔细研究了下代码: 代码如下:Alter PROCEDURE [dbo].[AreaSelect] @PageSize int=0, @CurrentPage int=1, @Identifier int=NULL, @ParentId int=NULL, @...

    Django原生sql也能使用Paginator分页的示例代码

    不过当一个页面有多处需要采用分页的话,就行不通了,要么修改django-pagination的源码,改变它的url指向,不过我没研究,当工程涉及到迁移时,要知道要安装各种东西本来就是个缺点,还要再修改源码,那就得不偿失。...

    C语言学生信息管理系统.rar

    4. 查询功能:分本科生和研究生两类人员,实现下列查询功能。 1) 分页显示全部学生的信息。分页功能:每页显示10条学生的信息,有上一页、下一页、首页和最后一页的功能。 2) 能够按班级显示本班全部学生信息。 3) ...

    论文研究-二三维联动战场可视化系统的研究与实现.pdf

    采用动态分页调度算法结合LOD技术实现了海量三维地形数据的加载与显示,研究三维军标绘制技术,提出了一种基于可视范围动态计算投影区域的方法,解决了三维线、面标号纹理模糊不清问题。采用MVC设计模式搭建二三维...

    论文研究-可重用Java数据库操作组件的设计和实现.pdf

    它封装了注册和载入JDBC驱动程序、建立数据库连接、运行Structured Query Language(SQL)语句及处理查询结果集、查询结果集的分页显示操作,简化了Java DataBase Connectivity(JDBC)代码的编写,通过编写SQL语句,...

    SQL语句大全.docx

    27.数据库分页语句 limit limit (索引,长度) 28.多表查询 Select 列名 from 表名1,表名2 29.笛卡尔乘积 (A,B) (c,d) =&gt; Ac Ad Bc Bd 30.内连接查询 A.隐式内连接 B.显示内连接 inner join on Select ...

Global site tag (gtag.js) - Google Analytics