目前大部分的应用程序中都会用到分页功能,以便减小前端浏览器及后台服务器的压力,以及其余方面的考虑。前端
(1)分页从概念上可分为逻辑分页和物理分页,逻辑分页主要是经过应用程序(前端或者后端)来分页,是从数据库中获取查询所有数据,而后经过java代码处理或前端处理后,分页展现给使用用户。java
(2)物理分页,物理分页是指分页操做是在数据库完成的,按照数据库关键字进行分页,应用程序中按照数据库分页关键字进行sql拼接后执行查询,完成分页功能。mysql
逻辑分页就很少说,不一样的项目不同,原理就是从数据库获取数据后,根据业务逻辑进行处理而已。sql
不一样的数据库使用的分页关键及方式不同,简单介绍下经常使用的Oracle、mysql及postgresql怎么进行的分页。数据库
(1) 分页语法后端
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
(2) 分页说明浏览器
select * from table limit 0,10; --从第0条开始,查询10条数据。 select * from table limit 10,10; --从第10条开始,查询10条数据。 ---通常经常使用的 select * from table limit 10; 至关于 select * from table limit 0,10;
(1) 分页语法服务器
select * from persons limit A offset B;
(2) 分页说明
A就是你须要显示多少行;
B就是查询的起点位置。oracle
(1) 分页语法框架
select rownum,t.* from F_KPI544_FEE_DETL t where rownum <10;
(2) 分页说明
oracle是使用rownum进行的分页,rownum只是一个伪列,每一张表中都有。
(1)本文只是大概介绍了下分页原理及各个数据库如何分页,分页中还存在其余的问题,好比mysql数据库分页offset越大,效率越低等问题就不详说了。
(2)目前Java应用中经常使用的ORM框架-Mybatis,可使用插件pagerHelper进行分页,支持oracle、mysql、postgresql等数据库。