springboot 整合pagehelper

阅读数:179 评论数:0

跳转到新版页面

分类

python/Java

正文

一、概述

PageHelper是开源免费的mybatis第三方分页插件。

二、使用

1、pom引入

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

不能再引入pagehelper,除非在mybatisConfig.xml文件中再加入配置:

<!-- mybatis分页-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.4</version>
</dependency>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory"
      class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
    <property name="typeAliasesPackage" value="com.xxx.xxx.common.model"></property>
    <property name="plugins">
        <array>
            <bean class="com.github.pagehelper.PageInterceptor">
                <!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 -->
                <property name="properties">
                    <value>
                        helperDialect=oracle
                        reasonable=true
                        supportMethodsArguments=true
                        params=count=countSql
                        autoRuntimeDialect=true
                    </value>
                </property>
            </bean>
        </array>
    </property>
    <!-- 配置mybatis配置文件的位置 -->
    <!--<property name="configLocation" value="classpath:mybatis-config.xml"/>-->
</bean>

2、配置

(1)在application.yml中配置

#mybatis 分页插件
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

helperDialect: 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式,也可以手动配置:

oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

offsetAsPageNum:默认值为false,当为true时,会使用RowBounds中的offset参数当成pageNum使用。

rowBoundsWithCount:默认值为false,当为true,使用RowBounds分页进行count查询。

pageSizeZero:默认值为false,当为true时,如果pageSize=0或RowBounds.limit=0就会查询出全部的结果,相当于没有分页。

reasonable:分页合理化参数,默认值为false,当设置为true时,pageNum<=0时会查询第一页,pageNum>pages(超过总数),会查询最后一页。

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

supportMethodsArguments:支持通过Mapper接口来传递参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面的params配置的字段中取值,查找到合的值时就会自动分而。

(2)也可以使用代码的方式配置

@Configuration
public class PageHelperConfig {
 
    @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;
    }
}

 

3、代码中使用

PageHelper.startPage(需要显示的第几个页面,每个页面显示的数量);
 
下一行紧跟查询语句,不可以写其他的,否则没有效果。
@Override
public PageInfo<User> findUserList(Integer page, Integer size) {
    // PageHelper 只对其后面的第一个查询有效
    PageHelper.startPage(page,size);
    // 执行分页查询
    List<User> list1=userMapper.selectUserList();
    // 不会执行分页查询
    List<User> list2=userMapper.selectUserList();
    // 返回结果
    PageInfo<User> pageInfo=new PageInfo<User>(list1);
    return pageInfo;
}

返回格式

{
    "total":34,
    "pageNum":1,
    "pageSize":10,
    "size":10,
    "startRow":1,
    "endRow":10,
    "pages":4,
    "prePage":0,
    "nextPage":2,
    "isFirstPage":true,
    "isLastPage":false,
    "hasPreviousPage":false,
    "hasNextPage":true,
    "navigatePages":8,
    "navigatepageNums":Array[4],
    "navigateFirstPage":1,
    "navigateLastPage":4,
    "list":Array[2]
}



相关推荐

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

1、Controller package com.xkcoding.rbac.security.controller;

mybatis-plus的分页查询,高版本与低版本有所不同,同事由原来的3.1改成了3.4.2,但配置项并没有随之修改,导致查询成功但无法分页,page和total都为0。 之前的配置项是这样配置的:

一、概述 springboot中有两种方式使用kafka时,直接使用kafka-client连接kafka服务;另一种是使用spring-kafka框架来连接kafka。 1、版本兼容 使用时要注意版

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

websocket协议基于tcp的网络协议,它实现浏览器与器全双工通信。 spring boot2 +websocket 1、添加依赖 <pre clas

出现这个错误,是因为mybatis默认OGNL解析参数,所以会自动采用对象树形式取String.xxx值。 解决方法: 方法1:在方法中提前定义 <pre c

&lt;if test="extraSql != null and extraSql !=''"&gt; AND ${ext

一、概述 mybatis原来是apache的一个开源项目,叫做ibatis,2010年由apache迁移到了google code,并且改名为mybatis。2013年迁移到github。 mybat

(1)Executor 执行增删改查操作