正好做到分页,原来的分页都是用mysql的limit自己去分页,现在发现PageHelper这个工具确实方便,就加到项目里面来了。
首先我加入的是
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.2</version>
</dependency>
然后写个Bean,并让spring扫描
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.util.Properties;
@Component
public class PageHelperConfig {
@Bean
public PageHelper pageHelper(){
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum","true");
properties.setProperty("rowBoundsWithCount","true");
properties.setProperty("reasonable","true");
//配置mysql数据库的方言
properties.setProperty("dialect","mysql");
pageHelper.setProperties(properties);
return pageHelper;
}
}
之后就可以在service中用了
public PageInfo<UploadClient> findUploadAllFile(Integer clientUserId, int pageNum) {
//pageNum页码,Const.PAGE_SIZE,每页多少条记录
PageHelper.startPage(pageNum, Const.PAGE_SIZE);
List<UploadClient> list = welcommeDao.findUploadAllFile(clientUserId);
PageInfo<UploadClient> pageInfo = new PageInfo<UploadClient>(list);
//获取总记录数
long total = pageInfo.getTotal();
System.out.println("共有上传信息信息:" + total);
return pageInfo;
}
看上图中list读出来的size是10个,就是我们设定的每页显示数据。
total是14个,是数据库里面的数量。
注意:
PageHelper.startPage(pageNum, Const.PAGE_SIZE);
List<UploadClient> list = welcommeDao.findUploadAllFile(clientUserId);
PageHelper.startPage(pageNum, Const.PAGE_SIZE);
放在查询语句上面一行,不然不一定会是正确的结果。
还有注意的是maven中引用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.1</version>
</dependency>
我这边测试PageHelper.startPage(pageNum, Const.PAGE_SIZE);
没生效。
到此为止,PageHelper配置也方便,使用也方便