Mybatis分页插件Pagehelper不生效的原因及解决

 更新时间:2025年06月05日 17:13:00   作者:川子的博客  
这篇文章主要介绍了Mybatis分页插件Pagehelper不生效的原因及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Pagehelper在SpringBoot2中的使用

1、在pom文件正确引入pagehelper-spring-boot-starter

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

2、不能引入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>

配置分页插件信息

1、在application.yml 中配置

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

2、或者在application.properties文件中配置

#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

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

@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;
    }

}

分页代码实现

注意点:

1、PageHelper.startPage(page,size)方法一般要放在方法中的首行

2、PageHelper 只对其后的第一个查询有效

    @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]
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot后台实现文件上传下载

    SpringBoot后台实现文件上传下载

    这篇文章主要为大家详细介绍了SpringBoot后台实现文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 简介Java的Hibernate框架中的Session和持久化类

    简介Java的Hibernate框架中的Session和持久化类

    这篇文章主要介绍了Java的Hibernate框架中的Session和持久化类,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • 在Mybatis中association标签多层嵌套的问题

    在Mybatis中association标签多层嵌套的问题

    这篇文章主要介绍了在Mybatis中association标签多层嵌套的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 详解Feign的实现原理

    详解Feign的实现原理

    Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API
    2021-06-06
  • 使用RestTemplate 调用远程接口上传文件方式

    使用RestTemplate 调用远程接口上传文件方式

    这篇文章主要介绍了使用RestTemplate 调用远程接口上传文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot+layuimini实现左侧菜单动态展示的示例代码

    SpringBoot+layuimini实现左侧菜单动态展示的示例代码

    Layuimini是Layui的升级版,它是专业做后台页面的框架,而且是适合PC端和移动端,以下地址可以在PC端显示,也可以在手机上显示,只不过会做自适应,本文将给大家介绍了SpringBoot+layuimini实现左侧菜单动态展示的方法,需要的朋友可以参考下
    2024-04-04
  • Spring Boot利用Java Mail实现邮件发送

    Spring Boot利用Java Mail实现邮件发送

    这篇文章主要为大家详细介绍了Spring Boot利用Java Mail实现邮件发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Spring Boot实现登录验证码功能的案例详解

    Spring Boot实现登录验证码功能的案例详解

    验证码的作用可以有效防止其他人对某一个特定的注册用户用特定的程序暴力破解方式进行不断的登录尝试,接下来通过本文给大家介绍Spring Boot实现登录验证码功能,需要的朋友可以参考下
    2022-08-08
  • JAVA设计模式---原型模式你了解吗

    JAVA设计模式---原型模式你了解吗

    这篇文章主要介绍了JAVA 原型模式的的相关资料,文中讲解非常细致,实例帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2021-09-09
  • SpringBoot中利用@Valid和@Validated进行参数校验

    SpringBoot中利用@Valid和@Validated进行参数校验

    为了保证数据的正确性、完整性,前后端都需要进行数据检验,作为一名后端开发工程师,不能仅仅依靠前端来校验数据,我们还需要对接口请求的参数进行后端的校验,所以本文给大家介绍了SpringBoot中利用@Valid和@Validated进行参数校验,需要的朋友可以参考下
    2024-09-09

最新评论