SpringBoot整合PageHelper的笔记

一、使用版本

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

<!-- 定义公共资源版本 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.7.RELEASE</version>
    <relativePath />
</parent>
<!-- 设置编码及指定jdk版本 -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <pagehelper.version>1.2.3</pagehelper.version>
</properties>
<dependencies>
    <!-- web项目必要的依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 整合mybatis -->
<!--        <dependency> -->
<!--            <groupId>org.mybatis.spring.boot</groupId> -->
<!--            <artifactId>mybatis-spring-boot-starter</artifactId> -->
<!--            <version>${mybatis.version}</version> -->
<!--        </dependency> -->

    <!--pagehelper有下面这个依赖,上面的可以不需要了 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <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<SysUserEntity> selectSysUser() {
    // 这里写死pageNum和PageSize
    // 排序实现: 数据库字段 + " desc" 或 数据库字段 + " asc"
    PageHelper.startPage(1, 10, "create_time desc");
    return new PageResultBean<SysUserEntity>(sysUserDao.selectSysUser());
}

附上:PageResultBean

@Data
public class PageResultBean<T> implements Serializable {

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

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

    /**
     * 结果集
     */
    private List<T> rows;

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

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

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

    public PageResultBean(List<T> rows) {
        init(rows);
    }

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

}

猜你喜欢

转载自blog.csdn.net/hkhhkb/article/details/79789477