网站开发常用的语言和工具目前好的推广平台
MyBatis,作为目前流行的ORM框架,大大方便了日常开发。而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐。而MyBatis PageHelper的出现,则解决了这一痛点。这里将介绍如何在Spring Boot、MyBatis的环境中通过MyBatis PageHelper高效方便的实现分页查询
添加Maven依赖
<!--MyBatis 分页插件: MyBatis PageHelper-->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version>
</dependency>
添加配置
在application.properties配置文件中添加MyBatis PageHelper的配置项
# PageHelper 分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
分页查询
通过 MyBatis PageHelper 进行分页查询实际上非常简单,只需在service(或mapper)方法执行查询前,调用一次 PageHelper.startPage(pageNum,pageSize) 来设置分页查询参数即可,其中pageNum 为记录页数,pageSize 为单页记录数量。此时service(或mapper)方法的查询结果就是分页后的结果了。如果期望获得相关的分页信息,还可以将查询结果封装到PageInfo对象中,以获得总页数、总记录数、当前页数等相关分页信息
现在通过一个实际示例,来具体演示操作,这里我们提供了一个分页查询的interface实现类
/*** QueryPageBean:存放currentPage、pageSize、queryString属性的对象* currentPage:页码* pageSize:每页记录数* queryString:查询条件* CheckItem:存放一条数据的所有属性的对象* PageResult:total、rows属性的对象* total:总记录数* rows:当前页结果*/@Overridepublic PageResult findPage(QueryPageBean queryPageBean) {//使用PageHelper//1设置分页条件PageHelper.startPage(queryPageBean.getCurrentPage(),queryPageBean.getPageSize());//2.正常查询List<CheckItem> checkItemList = checkItemMapper.findPage(queryPageBean);//3.获取分页信息PageInfo<CheckItem> checkItemPageInfo = new PageInfo<>(checkItemList);return new PageResult(checkItemPageInfo.getTotal(),checkItemPageInfo.getList());}
参数说明
startPage
//第一个参数表示从第几页开始
//第二个参数表示一页多少条记录
//第三个参数表示是否返回总的真实记录数
PageHelper.startPage(currentPage,pageSize,true);
PageInfo
//创建一个PageInfo对象,将Page对象作为参数传入
//getTotal()方法获取总记录数
//getList方法获取分页查询结果的数据列表,即符合当前分页条件的数据集合