一、使用版本
springboot 1.5.7.RELEASE、pagehelper 1.2.3,依赖如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<pagehelper.version>1.2.3</pagehelper.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
</dependencies>
二、使用方式(也可以使用默认配置,不加任何配置信息)
1、方式一,必须是在application.yml或application.properties里面加入如下属性(这里使用yml):
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
踩过的坑:配置了多环境配置文件,上面的配置信息不能加在application-dev.yml或application-prod.yml和application-test.yml中,否则springboot启动会报错。
2.方式二,新建一个配置类,代码如下:
@Configuration
public class PageHelperConfig {
/**
* 注入pagehelper配置
*
* @return
*/
@Bean
public PageHelper getPageHelper() {
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("helperDialect", "mysql");
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
properties.setProperty("params", "count=countSql");
pageHelper.setProperties(properties);
return pageHelper;
}
}
配置在配置文件里比较方便,当然配置在代码里支持热启动。
三、接口实现类中使用:
@Override
public PageResultBean<SysUserEntity> selectSysUser() {
PageHelper.startPage(1, 10, "create_time desc");
return new PageResultBean<SysUserEntity>(sysUserDao.selectSysUser());
}
@Data
public class PageResultBean<T> implements Serializable {
/**
* 序列化id
*/
private static final long serialVersionUID = -6477868212171605239L;
/**
* 总记录数
*/
private Long total;
/**
* 结果集
*/
private List<T> rows;
/**
* 页数
*/
private Integer pageNum;
/**
* 每页记录数
*/
private Integer pageSize;
/**
* 总页数
*/
private Integer pages;
public PageResultBean(List<T> rows) {
init(rows);
}
/**
* 初始化
*
* @param rows
*/
private void init(List<T> rows) {
if (rows instanceof Page) {
Page<T> page = (Page<T>) rows;
this.total = page.getTotal();
this.rows = page.getResult();
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
}
}
}