一、导入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.4</version>
</dependency>
二、编写配置
使用PageHelper需要编写一些配置,交给Spring去管理
@Configuration
public class PageHelperConfigure {
@Bean("pageInterceptor")
public PageInterceptor getPageInterceptor() {
PageInterceptor pageInterceptor = new PageInterceptor();
Properties properties = new Properties();
//根据自己使用的数据库去设置,例如mysql
properties.setProperty("helperDialect", "mysql");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("pageSizeZero", "true");
pageInterceptor.setProperties(properties);
return pageInterceptor;
}
}
三、代码
编写两个工具类,用于封装查询到的结果
PageResult工具类
/**
* 分页结果封装对象
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {
/**
* 总记录数
*/
private Long total;
/**
* 当前页结果
*/
private List rows;
}
QueryPageBean工具类
/**
* 封装查询条件
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QueryPageBean implements Serializable {
/**
* 页码
*/
private Integer currentPage;
/**
* 每页记录数
*/
private Integer pageSize;
/**
* 查询条件
*/
private String queryString;
}
业务代码
@GetMapping("resultPage")
public PageResult findPage(@RequestBody QueryPageBean queryPageBean) {
return iLaboratoryService.pageQuery(queryPageBean);
}
@Override
public PageResult pageQuery(QueryPageBean queryPageBean) {
Integer currentPage = queryPageBean.getCurrentPage();
Integer pageSize = queryPageBean.getPageSize();
String queryString = queryPageBean.getQueryString();
//当前页,页的大小
PageHelper.startPage(currentPage, pageSize);
//查询条件
Page<List<Map<String, Object>>> page = laboratoryMapper.executeSql(queryString);
long total = page.getTotal();
List<List<Map<String, Object>>> rows = page.getResult();
return new PageResult(total, rows);
}