MyBatis分页插件实现分页操作
1、导入Maven依赖
<!--分页插件-->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
2、Controller
@GetMapping("/user")
public String queryAll(HttpServletRequest request,
Model model){
Integer pageNum = request.getParameter("pageNum") == null ? 1 : Integer.valueOf(request.getParameter("pageNum"));
PageInfo<User> pageInfo = loginService.queryAllPages(pageNum, 4);
model.addAttribute("users", pageInfo.getList());
model.addAttribute("pages", pageInfo.getPages());
model.addAttribute("pageNum", pageInfo.getPageNum());
model.addAttribute("pageSize", pageInfo.getPageSize());
model.addAttribute("hasPreviousPage", pageInfo.isHasPreviousPage());
model.addAttribute("hasNextPage", pageInfo.isHasNextPage());
return "user";
}
3、ServiceImpl
@Override
public PageInfo<User> queryAllPages(Integer pageNum, Integer pageSize) {
//使用PageHelper实现分页
PageHelper.startPage(pageNum,pageSize);
List<User> users = loginMapper.queryAll();
PageInfo<User> userPageInfo = new PageInfo<>(users,pageSize);
return userPageInfo;
}
4、Mapper
@Mapper
@Component
@Transactional
public interface LoginMapper {
@Select("select * from user")
List<User> queryAll();
}
5、yaml
#pagehelper分页插件配置
pagehelper:
helper-dialect: mysql
reasonable: true
6、前端界面
补充
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据"
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//第一页
private int firstPage;
//前一页
private int prePage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;