SpringBoot 整合 pagehelper


SpringBoot集成pagehelper自然有它的StarterPageHelper-Spring-Boot-Starter

pom.xml 添加依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.13</version>
</dependency>

配置

官方说通常情况下是不需要配置的,如果需要在application.yml中,以下是部分配置参数:PageHelper是顶级。

# PageHelper分页插件
pagehelper:
  #指定分页插件使用哪种方言,支持:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,informix,h2,derby。。。
  helperDialect: mysql
  # pageNum<=0 时会查第一页, pageNum>pages(超过总数时),会查最后一页
  reasonable: true
  # 支持通过 Mapper 接口参数来传递分页参数,默认值false
  supportMethodsArguments: true
  # 为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值
  params: count=countSql

官方重要提示

官方原址

'【PageHelper.startPage方法重要提示】'
只有紧跟在PageHelper.startPage方法后的第一个Mybatis的查询(Select)方法会被分页。

'【请不要配置多个分页插件】'
请不要在系统中配置多个分页插件(使用Spring时,mybatis-config.xml和Spring<bean>配置方式,
请选择其中一种,不要同时配置多个分页插件)!

'【分页插件不支持带有for update语句的分页】'
对于带有for update的sql,会抛出运行时异常,对于这样的sql建议手动分页,毕竟这样的sql需要重视。

'【分页插件不支持嵌套结果映射】'
由于嵌套结果方式会导致结果集被折叠,因此分页查询的结果在折叠后总数会减少,所以无法保证分页结果数量正确。

用法

PageHelper.startPage(页码每页数量)

// 取第1页,每页2条,默认统计总条数。每次调一下它下1条查询就会执行分页。
PageHelper.startPage(1, 2);
List<Poem> list = poemService.list();
// 获取分页信息 (page 会包含 list)
PageInfo page = new PageInfo(list);

听说排序有坑,真到用时,还得注意一下

// 排序就直接写排序条件就行了
PageHelper.startPage(1, 5, "title desc");
    /**
     * 开始分页
     * @param pageNum  页码
     * @param pageSize 每页显示数量
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize)

    /**
     * 开始分页
     * @param pageNum  页码
     * @param pageSize 每页显示数量
     * @param count    是否进行count查询,默认 true
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize, boolean count)
    
    /**
     * 开始分页
     * @param pageNum  页码
     * @param pageSize 每页显示数量
     * @param orderBy  排序
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize, String orderBy)

    /**
     * 开始分页
     * @param pageNum      页码
     * @param pageSize     每页显示数量
     * @param count        是否进行count查询
     * @param reasonable   分页合理化,null时用默认配置
     * @param pageSizeZero true且pageSize=0时返回全部结果,false时分页,null时用默认配置
     */
    public static <E> Page<E> offsetPage(int pageNum, int pageSize, boolean count, Boolean reasonable, Boolean pageSizeZero)

PageHelper.offsetPage(起始位置每页显示数量)

    /**
     * 开始分页
     * @param offset 起始位置,偏移位置
     * @param limit  每页显示数量
     */
    public static <E> Page<E> offsetPage(int offset, int limit)

    /**
     * 开始分页
     * @param offset 起始位置,偏移位置
     * @param limit  每页显示数量
     * @param count  是否进行count查询
     */
    public static <E> Page<E> offsetPage(int offset, int limit, boolean count)

参考资料

pagehelper-spring-boot
官方文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章