SpringBoot整合PageHelper的笔记

一、使用版本

springboot 1.5.7.RELEASE、pagehelper 1.2.3,依赖如下:


<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>1.5.7.RELEASEversion>
    <relativePath />
parent>

<properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    <java.version>1.8java.version>
    <pagehelper.version>1.2.3pagehelper.version>
properties>
<dependencies>
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    






    
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelper-spring-boot-starterartifactId>
        <version>${pagehelper.version}version>
    dependency>
dependencies>

二、使用方式(也可以使用默认配置,不加任何配置信息)

1、方式一,必须是在application.ymlapplication.properties里面加入如下属性(这里使用yml):

pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

踩过的坑:配置了多环境配置文件,上面的配置信息不能加在application-dev.ymlapplication-prod.ymlapplication-test.yml中,否则springboot启动会报错。

2.方式二,新建一个配置类,代码如下:

@Configuration
public class PageHelperConfig {

    /**
     * 注入pagehelper配置
     * 
     * @return
     */
    @Bean
    public PageHelper getPageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("helperDialect", "mysql");
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("params", "count=countSql");
        pageHelper.setProperties(properties);
        return pageHelper;
    }

}

配置在配置文件里比较方便,当然配置在代码里支持热启动。

三、接口实现类中使用:

@Override
public PageResultBean selectSysUser() {
    // 这里写死pageNum和PageSize
    // 排序实现: 数据库字段 + " desc" 或 数据库字段 + " asc"
    PageHelper.startPage(1, 10, "create_time desc");
    return new PageResultBean(sysUserDao.selectSysUser());
}

附上:PageResultBean

@Data
public class PageResultBean<T> implements Serializable {

    /**
     * 序列化id
     */
    private static final long serialVersionUID = -6477868212171605239L;

    /**
     * 总记录数
     */
    private Long total;

    /**
     * 结果集
     */
    private List rows;

    /**
     * 页数
     */
    private Integer pageNum;

    /**
     * 每页记录数
     */
    private Integer pageSize;

    /**
     * 总页数
     */
    private Integer pages;

    public PageResultBean(List rows) {
        init(rows);
    }

    /**
     * 初始化
     * 
     * @param rows
     */
    private void init(List rows) {
        if (rows instanceof Page) {
            Page page = (Page) rows;
            this.total = page.getTotal();
            this.rows = page.getResult();
            this.pageNum = page.getPageNum();
            this.pageSize = page.getPageSize();
            this.pages = page.getPages();
        }
    }

}

你可能感兴趣的:(spring相关)