Mybatis使用系列-2-PageHelper分页

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 本篇记录如何使用PageHelper进行分页

PageHelper

第二篇文章看看Mybatis的分页查询功能!

在SpringBoot中使用PageHelper对Mybatis查询数据分页。

使用开源的PageHelper可以对查询进行分页,使用一下:

一、pom依赖

<!--分页查询插件启动器--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.13</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>

二、配置

packagecom.xing.config;
importcom.github.pagehelper.PageHelper;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importjava.util.Properties;
@ConfigurationpublicclassMybatisConfig {
@BeanpublicPageHelperpageHelper(){
PageHelperpageHelper=newPageHelper();
/*** helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。*      你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值: oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby*      特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。* params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值,*      可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,*      不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。* pageSizeZero:默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)。* supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。*      使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。* autoRuntimeDialect:默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 (不支持自动选择sqlserver2012,只能使用sqlserver)。* closeConn:默认值为 true。当使用运行时动态数据源或没有设置 helperDialect 属性自动获取数据库类型时,会自动获取一个数据库连接,*      通过该属性来设置是否关闭获取的这个连接,默认true关闭,设置为 false 后,不会关闭获取的连接,这个参数的设置要根据自己选择的数据源来决定* offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。当该参数设置为 true 时,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。* rowBoundsWithCount:默认值为false,该参数对使用 RowBounds 作为分页参数时有效。当该参数设置为true时,使用 RowBounds 分页会进行 count 查询。* reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页,pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。*/Propertiesp=newProperties();//添加配置,也可以指定文件路径p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
returnpageHelper;
    }
}


也可以在application中配置:

#配置分页插件pagehelper#pagehelper:
#helperDialect: mysql#reasonable: true#supportMethodsArguments: true#params: count=countSql

三、使用

/***  获取全部* @return user list*/@RequestMapping("/getAll/{num}")
publicStringgetAll(@PathVariableintnum){
if(StringUtils.isEmpty(num)){
num=2;
    }
PageHelper.startPage(1,num);
returnuserMapper.getAll().toString();
}

其实就是这句:PageHelper.startPage(1,num);

     在想要分页的查询方法前加上这句,就可以实现分页,不过只支持挨着下一句的查询方法,其他的查询方法是不受影响的。

测试结果我就不贴了,可以自己测试一下哦!一些详细的说明也都在注释中了,具体的推荐可以去官网学习哈!


总结:

       只是简单使用PageHelper来进行了分页,有兴趣的可以去搜下原理,也可以去github查看下源码。


END



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
29天前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
26 0
|
2月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
27 1
|
5月前
|
SQL Java 数据库连接
mybatis常见分页技术和自定义分页原理实战
mybatis常见分页技术和自定义分页原理实战
|
28天前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
9天前
|
SQL 前端开发 Java
通过使用Mybatis插件来实现数据的分页功能
通过使用Mybatis插件来实现数据的分页功能
|
2月前
|
SQL Java 数据库连接
Mybatis是如何实现分页功能的
Mybatis是如何实现分页功能的
12 0
|
3月前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
|
3月前
|
SQL Java 数据库连接
MyBatis 的 3 种分页方式
MyBatis 的 3 种分页方式
129 1
MyBatis 的 3 种分页方式
|
3月前
|
SQL Java 关系型数据库
|
4月前
|
SQL Oracle 关系型数据库
mybatis-3.分页
mybatis-3.分页