一.使用背景
在Web开发过程中涉及到表格时,就会产生分页的请求。通常我们将分页方式分为两种:前端分页和后端分页。
1.1 前端分页
一次性请求数据表格中的所有表格(ajax形式),然后在前端缓存并且计算和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。
特点:简单,很适合小规模的Web平台;当数量大的时候会产生性能问题。在查询和网络传输的时候时间会很长。
1.2 后端分页
在Ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当前的数据返回,前端只负责渲染。
特点:复杂一些;性能瓶颈在MySQL的查询性能,可以调优解决。一般来说,Web开发使用的是这种方式。
1.3 MySQL对分页的支持
简单来说MySQL对分页的支持是通过limit子句。
LIMIT [offset,] rows
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1).
上面的分页都太过于繁琐,下来我们来学习下MyBatis的分页。
二.MyBatis分页插件
2.1 使用步骤
2.1.1 引入分页插件
引入分页插件有下面两种方法,推荐使用Maven方式。
(1)引入Jar包
可以从下面的地址中下载最新版本的jar包:
-
https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/
-
http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/
由于使用了sql解析工具,还需要下载jsqlparser.jar(需要和PageHelper依赖的版本一致):