十八、Spring boot中Mybatis整合分页插件PageHelper

(一)添加依赖

<!-- mybatis分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.7</version>
		</dependency>

(二)配置PageHelper

pagehelper:
  #offset作为PageNum使用
  offset-as-page-num: true
 
  #RowBounds方式是否做count查询
  row-bounds-with-count: true
  
  #分页合理化,true开启,如果分页参数不合理会自动修正。默认false不启用(当该参数设置为 true 时,
  #pageNum<=0 时会查询第一页pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据
  #参数进行查询。)
  reasonable: true

#pageSizeZero   //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页

#params:用于从对象中根据属性名取值, 可以配置 #pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为#pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZe#ro=pageSizeZero

#supportMethodsArguments:默认值false,分页插件会从查询方法的参数值中,自动根据上面 #params 配置的字段中取值,查找到合适的值时就会自动分页。

(三)使用方法
1、第一种,Mapper接口方式的调用,推荐这种使用方式。

public List<User> selectAllUsers() {
		//1是当前页数,2是页面记录数(第1页,2条数据)
        PageHelper.startPage(1, 2);
        return userMapper.selectAllUsers();
    }

2、第二种,配置了supportMethodsArguments=true和params

params: pageNum=pageNum;pageSize=pageSize
support-methods-arguments: true

直接将分页信息写在dao层接口中

public interface UserMapper {
    List<User> selectAllUsers(int pageNum, int pageSize);
}

调用时检测到分页信息,就会自动调用分页

public List<User> selectAllUsers() {
        return userMapper.selectAllUsers(1, 2);
    }

3、第三种,将分页信息写在数据传输对象(DTO)中
如果 pageNum 和 pageSize 存在于 User 对象中,只要参数有值,也会被分页

public class User {
    //下面两个参数名和 params 配置的名字一致
    private Integer pageNum;
    private Integer pageSize;
}

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/82890143