Mybatis分页插件PageHelper的配置和使用方法

在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。

前端分页

一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。

特点是:简单,很适合小规模的web平台;当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长。

后端分页

在ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当页的数据返回,前端只负责渲染。

特点是:复杂一些;性能瓶颈在MySQL的查询性能,这个当然可以调优解决。一般来说,web开发使用的是这种方式。

我们说的也是后端分页。

MySQL对分页的支持

简单来说MySQL对分页的支持是通过limit子句。请看下面的例子。

limit关键字的用法是

LIMIT [offset,] rows

offset是相对于首行的偏移量(首行是0),rows是返回条数。

# 每页10条记录,取第一页,返回的是前10条记录select* from tableA limit0,10;

# 每页10条记录,取第二页,返回的是第11条记录,到第20条记录,select* from tableA limit10,10;

这里提一嘴的是,MySQL在处理分页的时候是这样的:

limit 1000,10 - 过滤出1010条数据,然后丢弃前1000条,保留10条。当偏移量大的时候,性能会有所下降。

limit 100000,10 - 会过滤10w+10条数据,然后丢弃前10w条。如果在分页中发现了性能问题,可以根据这个思路调优。

Mybatis分页插件PageHelper

在使用Java Spring开发的时候,Mybatis算是对数据库操作的利器了。不过在处理分页的时候,Mybatis并没有什么特别的方法,一般需要自己去写limit子句实现,成本较高。好在有个PageHelper插件。

1、POM依赖

Mybatis的配置就不多提了。PageHelper的依赖如下。需要新的版本可以去maven上自行选择

1

2

3

4

5

com.github.pagehelper

pagehelper

4.1.4

2、Mybatis对PageHelper的配置

打开Mybatis配置文件,一般在Resource路径下。我这里叫mybatis-config.xml。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Mybatis 分页插件实现 有数据的地方就有分页,分页的sql基本大加都会写,MySQL可以用limit,Ora...
    思无涯1993阅读 1,291评论 0 3
  • 小月是一名食品公司的销售代表。xx食品已在市场风行好长一段时间,但一般家庭对这种产品仍认识不清,不敢贸然购买,这使...
    小猪创天下阅读 284评论 0 0
  • 文/ 路人锋 无数个阳光灿烂的日子我们刚刚用过午餐夏季或冬季哪里都不去只和你,在一起呆在屋里吹着冷气,或烤着火炉你...
    路人锋阅读 519评论 16 27
  • 低气压低情绪,好难克服心里的那些条条框框。从来没有人教会我们如何爱,却让我们用爱意和另一个人生活一辈子。没法去践行...
    Joselyn阅读 235评论 0 0

友情链接更多精彩内容