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