springboot+Mybatis整合pageHelper分页插件
2018-12-11 00:04
776 查看
springboot+Mybatis整合pageHelper分页插件
整合概述
1.pom.xml加入pageHelper依赖
2.配置文件application.yml加入配置
3.Java类中配置mybatis的分页插件pageHelper,用注解@Bean的方式
4.可以封装一个分页工具类PageBean.java让分页信息更直观,类中包含pageNum(当前页),pageSize(每页条数),total(总数据条数),totalPage(总页数),queryModel(查询条件实体), dataList(查询结果集)。这个步骤不影响分页效果,其实上面三个步骤就可以实现分页效果了。
一:整合步骤
1.pom.xml加入pageHelper依赖
<!-- 分布插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency>
2.配置文件application.yml加入配置
# 分页配置 pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true params: count=countSql
3.Java类中配置mybatis的分页插件pageHelper,用注解@Bean的方式。
以下配置需要项目启动的时候都装载到容器中,所有我们需要写到配置中。我们可以新建一个类。
package com.shushan.config; import com.github.pagehelper.PageHelper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Properties; @Configuration public class configuration { //配置mybatis的分页插件pageHelper @Bean public PageHelper pageHelper() { System.out.println("=========configuration配置初始化==========="); PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("offsetAsPageNum","true"); properties.setProperty("rowBoundsWithCount","true"); properties.setProperty("reasonable","true"); properties.setProperty("dialect","mysql"); //配置mysql数据库的方言 pageHelper.setProperties(properties); return pageHelper; } }
4.可以封装一个分页工具类PageBean.java让分页信息更直观,类中包含pageNum(当前页),pageSize(每页条数),total(总数据条数),totalPage(总页数),queryModel(查询条件实体), dataList(查询结果集)。这个步骤不影响分页效果,其实上面三个步骤就可以实现分页效果了。
package com.shushan.util; import com.github.pagehelper.Page; import com.github.pagehelper.PageInfo; import java.io.Serializable; import java.util.List; /** * 分页工具类 * @param <T> */ public class PageBean<T> implements Serializable { private static final long serialVersionUID = 1L; //当前页 private Integer pageNum = 1; //每页条数 private Integer pageSize; //总记录数 private Long total; //总页数 private Integer totalPage; //查询条件实体对象 private T queryModel; //数据 private List<T> dataList; public PageBean() { super(); } /** * 构造函数 * @param pageNum * @param pageSize */ public PageBean(Integer pageNum, Integer pageSize) { this.pageNum = pageNum; this.pageSize = pageSize; } /** * 转换分页对象 * @param pageNum * @param pageSize * @param models * @param <T> * @return */ public static <T> PageBean<T> toPageBean(Integer pageNum, Integer pageSize, List models) { PageBean<T> result = new PageBean(); if (null != models){ PageInfo<T> page = new PageInfo<>(models); result.setPageNum(page.getPageNum()); result.setPageSize(page.getSize()); result.setTotal(page.getTotal()); result.setTotalPage(page.getPages()); result.setDataList(models); } else { result.setPageNum(pageNum); result.setPageSize(pageSize); } //页数为0时,前端显示会有问题,默认为1 if (result.getPageNum() == 0) { result.setPageNum(1); } return result; } public Integer getPageNum() { return pageNum; } public Integer getPageSize() { return pageSize; } public Long getTotal() { return total; } public Integer getTotalPage() { return totalPage; } public T getQueryModel() { return queryModel; } public List<T> getDataList() { return dataList; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public void setTotal(Long total) { this.total = total; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public void setQueryModel(T queryModel) { this.queryModel = queryModel; } public void setDataList(List<T> dataList) { this.dataList = dataList; } }
二:如何使用
1.以上已经实现对PageHelper的整合,下面讲如何使用
/** * 分页查询 * @param pageNum 当前页数 * @param pageSize 每页条数 * @return */ public PageBean<Student> findUserListOfPage(int pageNum, int pageSize) { //在分页控制类中设置当前页数,每页条数 //说明:设置当前页,每页条数 PageHelper.startPage(pageNum, pageSize); //查询所有数据,下面的查询不考虑分页,分页插件PageHelper会自动给我们分页 //数据集stuList已经是分页查询后的结果了 List<Student> stuList = userHandleDao.findUserAll(); //通过工具类封装数据集 PageBean pageBean = PageBean.toPageBean(pageNum, pageSize, list); return pageBean; }
我本机电脑测试结果如下:
注:以上讲解详细springboot+Mybatis整合pageHelper分页插件源码可以从下面地址下载:
https://github.com/shushan452/localRepository
相关文章推荐
- Spring Boot整合Mybatis-Plus和PageHelper分页插件,附项目源码
- Mybatis分页插件 - PageHelper与springBoot的整合
- SpringBoot Mybatis PageHelper分页插件的两种用法(二)
- springboot 集成myBatis PageHelper 分页插件
- Spring Boot系列教程十一: Mybatis使用分页插件PageHelper
- spring-boot 集成mybatis的分页插件PageHelper和Generator (番外)
- Spring,SpringBoot 集成 MyBatis 的分页插件 PageHelper
- spring-boot 集成mybatis的分页插件PageHelper和Generator (番外)
- springboot如何集成mybatis的pagehelper分页插件
- [置顶] MyBatis基于Spring-boot集成通用Mapper以及pagehelper分页插件(含源码下载)
- spring-boot | 整合通用Mabatis 分页插件PageHelper
- 记录问题:springboot中使用Mybatis-pagehelper分页插件遇到的版本兼容问题
- SpringBoot Mybatis PageHelper分页插件的两种用法(一)
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper
- spring-boot 集成mybatis的分页插件PageHelper版本问题
- spring-boot 集成mybatis的分页插件PageHelper和Generator
- springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)
- springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件