java 中查询数据库后的分页咋做,管理系统的查询显示方面,上一页,下一页的实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中查询数据库后的分页咋做,管理系统的查询显示方面,上一页,下一页的实现相关的知识,希望对你有一定的参考价值。
数据库 分页的查询语句为 select top pageSize * from objectTable obj where obj.id not in(select top (pageNumber-1)*pageSize id from objectTable) 然后将查询结果放到一个List集合中 返回回去。在页面进行显示就可以了。但注意的是页面要控制好当前页码。 pageSize: 每页显示的信息条数、pageNumber:当前页码 参考技术A 我 这有 一个通用的分页查询的 封装代码 有兴趣 可 发 给你 参考技术B 这个不难,起一个分页组件.(里面有拿到下一页,拿到上一页的方法)然后在jsp页面里面,当点上一页时,把当前页,发过服务器那边,服务器再去数据库查找指定范围的数据,不同数据库有不同的分布方法。然后拿到一定数量的集合,再由服务器发回到jsp页面,再显示就行了。。。大概原理就这是样,不懂的继续问。。。
Oracle的极大数据量的分页查询问题
Oracle的分页查询在表中数据量极大时(上亿条、有索引),在第一次查询会出结果(3、5秒),而相同条件在第一次查询出结果立即再次进行查询时,会出现长时间等待也没有结果的情况(好像锁住了)。
请问如何解决,谢谢!
语句示例如下(数据行数cnt大约从几千、几万、十几万不等,都是同样的问题):
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (select count(*) over() CNT,
ta.ca,ta.cb,ta.cc,... from ta where fname like 'test%' ORDER BY ta.ca
) A WHERE ROWNUM <= 15 ) WHERE RN >= 1
2.索引顺序排列正确(这个你查一下,索引不是建 了就可以。查询时有顺序的,四年前的项目,改变顺序后,时间由35s 提升到6-8s,具体的记不清了,只记得有这么回事。)
回去以后试一下你的SQL,只有数据多才出现这个问题吗?字段长度大约都多少?本回答被提问者采纳 参考技术B 相同条件在第一次查询出结果立即再次进行查询时
你第二次查询你查出来的结果集是去全表遍历查的 结果集是没有就是一推数据 上面没有索引没有任何东西,建议能先处理逻辑关系减少数据量 orderby 这些能不用就不用 like也会让index失效 用between可以代替 参考技术C 没法优化。查询条件中用了like子句,索引会不起作用,造成遍历整张表。
如果没有like及order by子句的话,会快很多 参考技术D 你这样做分页是全部查询后分页吗?为何不做成分页后查询?因为你只写了语句示例具体情况不是很了解。我们曾经做过一次查询后分页会使得页面刷新很慢,但调整后就相对快很多了。 第5个回答 2012-01-31 第一次能快速的出来结果,就说明了语句本身没有太大的问题。现在不明白你的第二次查询是一直都不出来结果,还是说能出来结果,但是结果出来的非常慢。
以上是关于java 中查询数据库后的分页咋做,管理系统的查询显示方面,上一页,下一页的实现的主要内容,如果未能解决你的问题,请参考以下文章