1. 场景描述

目前大部分的应用程序中都会用到分页功能,以便减少前端浏览器及后台服务器的压力,以及其他方面的考虑。

(1)分页从概念上可分为逻辑分页和物理分页,逻辑分页主要是通过应用程序(前端或者后端)来分页,是从数据库中获取查询全部数据,然后通过java代码处理或前端处理后,分页展示给使用用户。

(2)物理分页,物理分页是指分页操作是在数据库完成的,按照数据库关键字进行分页,应用程序中按照数据库分页关键字进行sql拼接后执行查询,完成分页功能。

2. 解决方案

2.1 逻辑分页

逻辑分页就不多说,不同的项目不一样,原理就是从数据库获取数据后,根据业务逻辑进行处理而已。

2.2 物理分页

不同的数据库使用的分页关键及方式不一样,简单介绍下常用的Oracle、mysql及postgresql怎么进行的分页。

2.2.1 mysql 分页

(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;
2.2.2 postgresql分页。

(1) 分页语法

select * from persons limit  A  offset  B;

(2) 分页说明

A就是你需要显示多少行;

B就是查询的起点位置。

2.2.3 oracle分页

(1) 分页语法

select rownum,t.* from F_KPI544_FEE_DETL t where rownum <10;

(2) 分页说明

oracle是使用rownum进行的分页,rownum只是一个伪列,每一张表中都有。

2.3 方案说明

(1)本文只是大概介绍了下分页原理及各个数据库如何分页,分页中还存在其他的问题,比如mysql数据库分页offset越大,效率越低等问题就不详说了。

(2)目前Java应用中常用的ORM框架-Mybatis,可以使用插件pagerHelper进行分页,支持oracle、mysql、postgresql等数据库。


最新文章

  1. Linux安装MySQL
  2. CodeFirst时使用T4模板(你肯定没用过的笨方法,还望园友指教)
  3. Java实现购物车功能:方式一:存放在session中.方式二:存储在数据库中
  4. 71 mac boook pro 无 gpu 下caffe 安装
  5. SQL Server 索引中include的魅力(具有包含性列的索引)
  6. 黄聪:详解 ManualResetEvent(转)
  7. bzoj 4358 permu
  8. A Round Peg in a Ground Hole(凸包应用POJ 1584)
  9. CString.Format的详细用法(转)
  10. Oracle to_char格式化函数
  11. oracle中sql查询语句的执行顺序
  12. OC中ARC forbids explicit message send of release错误(转)
  13. WINHTTP的API接口说明
  14. 使用JAVA NIO实现的UDP client和server
  15. 201521123036 《Java程序设计》第3周学习总结
  16. cd 命令详解
  17. C++解析五-this 指针,指向类的指针
  18. os模块。笔记
  19. study design of ADNI
  20. slave库写redo、binlog不实时丢数据的场景

热门文章

  1. 前端PS常用切图技巧
  2. vs2015 cordova环境安装【个人遇到的几个问题】
  3. huawei 通过BGP的团体属性进行路由控制
  4. 活锁(livelock) 专题
  5. HLS(HTTP Live Streaming)学习和探讨
  6. 动态加载XAML
  7. MacOS X编译OpenSceneGraph
  8. Mono 4.0 发布,开源跨平台 .Net 框架
  9. Google+团队如何测试移动应用 - from Google Testing Blog
  10. GCC链接库的一个坑:动态库存在却提示未定义动态库的函数