关于java中分页的实现
程序员文章站
2022-07-12 17:14:51
...
一直以来,分页和排序问题一直是做J2ee项目的一个很重要的问题。一个好的分页排序算法,会使系统得到很好的性能.反之,系统性能会很低,而且系统速度慢,这是每位programmer不想看见的。
总结现在的关于排序分页方面的各种实现,大概有一下几种:
1,基于框架实现的,如hibernate的内部分页排序的实现。
2,基于外部组件的实现,如Toplink比较多,可是没有分页的支持。
3,还有的就是各个项目组自己的实现了。
一直我都希望在自己的项目组内部来实现分页排序,现在把我了解的写下来。
据robbin提到的分页算法,
SELECT * FROM
( SELECT row_.*, rownum rownum_ FROM
(selelct * from TABLE where ..... ) row_
WHERE rownum <= ?
)
WHERE rownum_ > ?
注释:1,首先是最内层,得到你想要的所有数据了。
2,然后利用Oracle内部rownum,为从内部那层搜索到的数据来编号,这样就可以来利用rownum来实现分页了。
3,直接然后自己选择那些已经编号了数据就可以得到任意数据了。
总结现在的关于排序分页方面的各种实现,大概有一下几种:
1,基于框架实现的,如hibernate的内部分页排序的实现。
2,基于外部组件的实现,如Toplink比较多,可是没有分页的支持。
3,还有的就是各个项目组自己的实现了。
一直我都希望在自己的项目组内部来实现分页排序,现在把我了解的写下来。
据robbin提到的分页算法,
SELECT * FROM
( SELECT row_.*, rownum rownum_ FROM
(selelct * from TABLE where ..... ) row_
WHERE rownum <= ?
)
WHERE rownum_ > ?
注释:1,首先是最内层,得到你想要的所有数据了。
2,然后利用Oracle内部rownum,为从内部那层搜索到的数据来编号,这样就可以来利用rownum来实现分页了。
3,直接然后自己选择那些已经编号了数据就可以得到任意数据了。
下一篇: 初来乍到