1.pom引入
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.2</version>
</dependency>
2.为sqlsessionfactory添加拦截器
/**
* 返回数据库的会话工厂
*
* @param ds
* @return
* @throws Exception
*/
@Bean(name = "SqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dbSource") DataSource ds) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(ds);
//添加分页支持
Interceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("helperDialect", "mysql");
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
interceptor.setProperties(properties);
bean.setPlugins(new Interceptor[]{interceptor});
return bean.getObject();
}
3.使用
@Override
public PageBean<Map<String, Object>> listMethod(PageReqDto pageReqDto) {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
PageHelper.startPage(pageReqDto.getPageNum(), pageReqDto.getPageSize());
list = xxDao.listMethod(pageReqDto);
PageBean<Map<String, Object>> p = new PageBean<>(list);
return p;
}
public class PageReqDto extends BaseReqDto {
/**
* 第几页
*/
private Integer pageNum;
/**
* 每页多少行
*/
private Integer pageSize;
/**
* 默认第几页
*/
public static final Integer PAGENUM_DEFAULT = 1;
/**
* 默认每页显示多少行
*/
public static final Integer PAGESIZE_DEFAULT = 10;
public Integer getPageNum() {
if (null == pageNum) {
pageNum = PAGENUM_DEFAULT;
}
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
if (null == pageSize) {
pageSize = PAGESIZE_DEFAULT;
}
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}