1.一般分页功能是要自己实现的,也不难,但是有了这插件,一行代码,然后配置一下就可以用了
2.下面讲下pagehelper的用法
maven jar文件
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.2</version>
</dependency>
下面这部分可有可无,主要是可以让你进一步了解这个插件的东西
import com.github.pagehelper.Page;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
@SuppressWarnings({"rawtypes", "unchecked"})
public class PageInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
public PageInfo() {
}
/**
* 包装Page对象
*
* @param list
*/
public PageInfo(List<T> list) {
if (list instanceof Page) {
Page page = (Page) list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.list = page;
this.total = page.getTotal();
} else if (list instanceof Collection) {
this.pageNum = 1;
this.pageSize = list.size();
this.pages = 1;
this.list = list;
this.total = list.size();
}
if (list instanceof Collection) {
//判断页面边界
judgePageBoudary();
}
}
/**
* 判定页面边界
*/
private void judgePageBoudary() {
isFirstPage = pageNum == 1;
isLastPage = pageNum == pages;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public boolean isIsFirstPage() {
return isFirstPage;
}
public void setIsFirstPage(boolean isFirstPage) {
this.isFirstPage = isFirstPage;
}
public boolean isIsLastPage() {
return isLastPage;
}
public void setIsLastPage(boolean isLastPage) {
this.isLastPage = isLastPage;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("PageInfo{");
sb.append("pageNum=").append(pageNum);
sb.append(", pageSize=").append(pageSize);
sb.append(", total=").append(total);
sb.append(", pages=").append(pages);
sb.append(", list=").append(list);
sb.append(", isFirstPage=").append(isFirstPage);
sb.append(", isLastPage=").append(isLastPage);
sb.append(", navigatepageNums=");
sb.append('}');
return sb.toString();
}
}
至于最关键的是
public List<user> findAll(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
return userMapper.findAll();
}
findAll自己编写的一个类,PageHelper.startPage(页数,每夜多少显示数量),关键所在。其次userMapper.findALL是mybatis操作数据库的一个方法
Controller(仅供参考)
@Autowired
public UserServiceImpl userService;
@RequestMapping (value="/findAll/{No}/{Size}")
public String find(@PathVariable(value = "No")int No,@PathVariable(value = "Size")int Size){
List<user> list=userService.findAll(No,Size);
System.out.println("list:"+list.toString());
PageInfo<user> pageInfo = new PageInfo<>(list);
System.out.println(JSON.toJSONString(pageInfo));
Iterator<user> i=list.iterator();
String s="";
while(i.hasNext()){
user u=i.next();
s+=u.getName()+" "+u.getAge()+" ";
}
return s;
}
我把实现的写在service以及它的实现类impl上,然后注入,这个你们自己编写。
List<user> list=userService.findAll(No,Size);
System.out.println("list:"+list.toString());
这个输出的时候List里面具体的类是Page,所以你可以用上面编写的PageInfo类进行打印,查看里面结构
最后看下打印的结果
至于怎么实现分页功能,先设置No这个参数为1,Size自己设置,然后前端实现按钮跳转,传过来值是当前页数+1,就ok了