zoukankan      html  css  js  c++  java
  • web应用分页-copy

    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等数据库。

  • 相关阅读:
    DRP-ThreadLocal简单的理解
    Android开源项目SlidingMenu本学习笔记(两)
    [RxJS] Displaying Initial Data with StartWith
    [RxJS] Updating Data with Scan
    [RxJS] Stopping a Stream with TakeUntil
    [RxJS] Reactive Programming
    [RxJS] Reactive Programming
    [RxJS] Reactive Programming
    [RxJS] Starting a Stream with SwitchMap & switchMapTo
    [RxJS] Reactive Programming
  • 原文地址:https://www.cnblogs.com/hanease/p/14520735.html
Copyright © 2011-2022 走看看