日期:2014-05-20  浏览次数:20690 次

常用的分页技术有哪几种?请指教下可以吗?
常用的分页技术有哪几种?分享下可以吗?

------解决方案--------------------
服务器端分页 客户端分页
------解决方案--------------------
分页技术是甚么?lz是想知道怎样分页吗?可以自己写及各类对分页信息进行封装,然后在页面调用,也可以使用开源的pager-taglib。
------解决方案--------------------
真分页和假分页,真分页是数据库sql分页,例mysql的:select * from xxx ....limit .忘了具体的sql语句了;

假分页就是用程序分页,先通过数据库查出所有数据,然后通过程序段显示;
------解决方案--------------------
探讨
引用:
服务器端分页 客户端分页

服务器端分页是不是就是数据库分页和程序分页啊,客户端分页是指js分页?

------解决方案--------------------
建议楼主是用xpager这个开源的第三方包,很方面。
------解决方案--------------------
xpager是在数据库就已经进行了分页动作,只获取将要展示的一页数据,而且是用起来也很方便,没有多少额外的操作。
------解决方案--------------------
xpager官方给出的例子我感觉给的不是特别好。
尤其是是用了spring容器进行管理后,页面需要一个service对象来操作分页动作,所以这个service对象是需要容器注入控制层,然后从控制层传递给页面,页面自己new出来是不行的。其它应该都很好解决。
------解决方案--------------------
探讨
引用:
服务器端分页 客户端分页

服务器端分页是不是就是数据库分页和程序分页啊,客户端分页是指js分页?

------解决方案--------------------
在服务器端分页有两种,一种是通过sql语句控制比如SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id,一种是通过程序分段控制即在后台定义页数和每页显示的数量。也可以在前台分页,但是要先将后台的数据传到前台,前台再定义每页显示的数量,根据需要显示
------解决方案--------------------
探讨
引用:
程序分页不推荐,一般是数据库分页,前端把页数传给服务器,后端将数据传回.客户端分页有js的,也可以自己写一个循环将值传给servlet(数据量少,结构简单的可以用这种原始方法).

------解决方案--------------------
用mysql的思路,主要是用到limit语句,如
select * from student limit 1,10
select * from student limit 11,20
jsp页面通过传入参数pageId和pageSize来控制分页,当要查询第3页,一页显示10条时,
数据库的查询语句如下
select * from student limit 21,30

用oracle的思路,主要用到rownum,且rownum不用来进行>或>=操作,只能操作别名,如
select * from (select rownum as rownum的别名,* from student where rownum < 100) where rownum的别名 > 90

如果你用msserver的话,建议改行搞.net吧。。
------解决方案--------------------
真分页,假分页
------解决方案--------------------
bboss 框架,很简单的实现了分页的一整套东西。
------解决方案--------------------
学习啦,xpager
------解决方案--------------------
为什么不通过 Hibernate来进行分页呢。就两句话的事情,
 JDBC也可以分页呀~ 在前台页面js中也可以实现分页。
------解决方案--------------------
oracle有按照rownum分页和rowid分页,其中rowid分页效率比rownum高一点,但是sql语句长很多。例如scott用户中的emp表可以用以下语句分页,楼主可测试下:

SQL code

select * from (
 select t1.*,rownum rn from (
  select * from scott.emp order by sal desc --这里是排序好的表
 )t1 where rownum < 8 --这里是上限
)where rn > 5 --这里是下限

select * from scott.emp where rowid in ( --这里选择要查询出的字段
 select rid from (
  select rownum rn,rid from (
   select rowid rid,sal from scott.emp order by sal desc --这里进行表排序
  ) where rownum < 8 --这里是上限
 ) where rn > 5 --这里是下限
) order by sal desc --这里再次排序

------解决方案--------------------
探讨

为什么不通过 Hibernate来进行分页呢。就两句话的事情,
JDBC也可以分页呀~ 在前台页面js中也可以实现分页。

------解决方案--------------------