pom
注意 ,这两个依赖会有版本冲突问题
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
propreties配置文件
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
模板类
负责储存展示的内容,和分页信息
package com.example.demo.model;
import com.github.pagehelper.PageInfo;
import lombok.Data;
import java.util.List;
@Data
public class PageClass {
private PageInfo pageInfo;
private List<Book> bookList;
public PageClass(PageInfo pageInfo, List<Book> bookList) {
this.pageInfo = pageInfo;
this.bookList = bookList;
}
}
数据层
唯一作用就是查询所有的数据然后交给servcie做分页处理
@Select("select * from book")
List<Book> selectBook();
业务层
public PageClass getList(int pageNum, int pageSize) {
//使用分页插件,核心代码就这一行
PageHelper.startPage(pageNum, pageSize);
List<Book> bookList = bookDao.selectBook();
//上面返回的结果集做分页信息参数
PageInfo page = new PageInfo(bookList);
PageClass pageClass = new PageClass(page,bookList);
//打印下属性
log.info("当前页数:"+page.getPageNum());
log.info("每页数量:"+page.getPageSize());
log.info("当前页面数量:"+page.getSize());
log.info("总记录数:"+page.getTotal());
log.info("总页数:"+page.getPages());
return pageClass;
}
控制层
@GetMapping("/itemsPage")
public String itemsPage(@RequestParam(value="currentPage", defaultValue="1") int currentPage,@RequestParam(value="pageSize", defaultValue="30") int pageSize ,ModelMap map){
map.addAttribute("pages",bookServiceImpl.getList(currentPage, pageSize));
return "pageSelect";
}
前端模板页
<h1>
<table>
<th>Id</th><th>name</th><th>pid</th>
<#list pages.bookList as bookMsg>
<tr><td>${bookMsg.id}</td><td>${bookMsg.name}</td><td>${bookMsg.pid}</td></tr>
</#list>
</table>
<#list 1.. pages.pageInfo.pages as index>
<a href="itemsPage?currentPage=${index}&pageSize=${pages.pageInfo.pageSize}">第${index}页</a>
</#list>
</h1>