springboot+Mybatis的分页插件pageHelper
2018-11-21 15:49
465 查看
1、在pom.xml加入pageHelper依赖包
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>
ps:jar包可以在maven仓库中下载,地址如下
2、创建一个名为pageBean的实体类
package com.zt.entity; import java.util.List; public class PageBean<T> { // 当前页 private Integer currentPage = 1; // 每页显示的总条数 private Integer pageSize = 10; // 总条数 private Integer totalNum; // 是否有下一页 private Integer isMore; // 总页数 private Integer totalPage; // 开始索引 private Integer startIndex; // 分页结果 private List<T> items; public PageBean() { super(); } public PageBean(Integer currentPage, Integer pageSize, Integer totalNum) { super(); this.currentPage = currentPage; this.pageSize = pageSize; this.totalNum = totalNum; this.totalPage = (this.totalNum+this.pageSize-1)/this.pageSize; this.startIndex = (this.currentPage-1)*this.pageSize; this.isMore = this.currentPage >= this.totalPage?0:1; } public Integer getCurrentPage() { return currentPage; } public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalNum() { return totalNum; } public void setTotalNum(Integer totalNum) { this.totalNum = totalNum; } public Integer getIsMore() { return isMore; } public void setIsMore(Integer isMore) { this.isMore = isMore; } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public Integer getStartIndex() { return startIndex; } public void setStartIndex(Integer startIndex) { this.startIndex = startIndex; } public List<T> getItems() { return items; } public void setItems(List<T> items) { this.items = items; } }
3、创建一个名为AbstractPageForm的类,用来设置分页相关的参数
package com.zt.paging; import com.github.pagehelper.PageHelper; import java.io.Serializable; public class AbstractPageForm<T extends AbstractPageForm<T>> implements Serializable { private static final long serialVersionUID = 1L; /** * @Description 页码为首页 */ protected int pageNum = 1; /** * @Description 每页显示数量,默认为10 */ protected int pageSize = 10; 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; } /** * @Title enablePaging * @Description 启用分页 * @return */ @SuppressWarnings("unchecked") public final T enablePaging() { PageHelper.startPage(pageNum, pageSize); return (T) this; } }
4、构造分页方法
public PageBean findAllUserWithPages(int currentPage,int pageSize){ //设置分页信息,分别是当前页数和每页显示的总记录数【记住:必须在mapper接口中的方法执行之前设置该分页信息】 PageHelper.startPage(currentPage,pageSize); //全部用户信息 List<User> all = iUserMapper.findAll(); //全部条数 int allCount = iUserMapper.findAllCount(); PageBean<User> pageData=new PageBean<User>(currentPage,pageSize,allCount); pageData.setItems(all); return pageData; }
mapper.xml文件
<select id="findAll" resultMap="BaseResultMap"> select <include refid="a"/> from user </select> <select id="findAllCount" resultType="integer"> select count(1) from user </select> <sql id="a"> id,email,email_code,email_verify,gender,google_key,google_secret,google_verify,has_stop, mobile_phone,name,password,pay_password,user_name,miner_info_id,parent_id,role_id </sql>
注意:findAllCount方法需要加上结果类型,不然会出现如下异常:
5、在controller中实现分页功能
package com.zt.controller; import com.zt.entity.PageBean; import com.zt.entity.User; import com.zt.service.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Objects; @RestController @RequestMapping("/user") public class UserController { @Autowired private UserServiceImpl userService; @RequestMapping("/findAll") public PageBean findAll(Integer currentPage,Integer pageSize){ if(Objects.nonNull(currentPage)&Objects.nonNull(pageSize)){ if(currentPage>0&pageSize>0){ return userService.findAllUserWithPages(currentPage,pageSize); } return userService.findAllUserWithPages(1,324); } return userService.findAllUserWithPages(1,324); } } /*传入的参数最好使用Integer包装类,以便我们进行逻辑判断*/
6、测试结果
这就是Mybatis分页插件PageHelper的简单应用啦!
相关文章推荐
- spring-boot 集成mybatis的分页插件PageHelper和Generator
- springboot+Mybatis整合pageHelper分页插件
- springboot 集成myBatis PageHelper 分页插件
- [置顶] MyBatis基于Spring-boot集成通用Mapper以及pagehelper分页插件(含源码下载)
- spring-boot 集成mybatis的分页插件PageHelper版本问题
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- Mybatis分页插件 - PageHelper与springBoot的整合
- springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)
- SpringBoot_thymeleaf_mybatis和PageHelper分页插件整合
- SpringBoot Mybatis PageHelper分页插件的两种用法(一)
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper
- springboot如何集成mybatis的pagehelper分页插件
- Spring Boot整合Mybatis-Plus和PageHelper分页插件,附项目源码
- Spring Boot系列教程十一: Mybatis使用分页插件PageHelper
- spring-boot 集成mybatis的分页插件PageHelper和Generator (番外)
- spring-boot 集成mybatis的分页插件PageHelper和Generator (番外)
- Spring,SpringBoot 集成 MyBatis 的分页插件 PageHelper
- Spring Boot 配置 Mybatis 通用 Mapper 和 pagehelper 分页插件
- 记录问题:springboot中使用Mybatis-pagehelper分页插件遇到的版本兼容问题