PageHelper 分页实现

本文详细介绍了PageHelper分页插件的安装与使用方法,包括在Spring Boot项目中的Maven依赖配置,以及在application.properties、mybatis.xml配置文件和代码中初始化PageHelper的三种方式。并提供了代码示例,展示如何在查询前使用PageHelper进行分页设置及获取总记录数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PageHelper是Mybatis的一个分页插件,非常的好用! 

PageHelper的使用很简单,只需要在Maven中添加pagehelper这个依赖就可以了。

Maven的依赖如下:

//注:这里我是用springBoot版的!也可以使用其它版本的。
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.3</version>
</dependency

第一种,在application.properties或application.yml添加

 pagehelper:
  helperDialect: mysql
  offsetAsPageNum: true
  rowBoundsWithCount: true
  reasonable: false

第二种,在mybatis.xml配置中添加

 <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="plugins">
        <array>
          <bean class="com.github.pagehelper.PageHelper">
            <property name="properties">
              <value>
                helperDialect=mysql
                offsetAsPageNum=true
                rowBoundsWithCount=true
                reasonable=false
              </value>
            </property>
          </bean>
        </array>
      </property>
  </bean>

第三种,在代码中添加,使用@Bean注解在启动程序的时候初始化。

 @Bean
  public PageHelper pageHelper(){
    PageHelper pageHelper = new PageHelper();
   Properties properties = new Properties();
   //数据库
   properties.setProperty("helperDialect", "mysql");
   //是否将参数offset作为PageNum使用
   properties.setProperty("offsetAsPageNum", "true");
   //是否进行count查询
   properties.setProperty("rowBoundsWithCount", "true");
   //是否分页合理化
   properties.setProperty("reasonable", "false");
   pageHelper.setProperties(properties);
  }

 

设置完PageHelper 之后,使用的话,只需要在查询的sql前面添加PageHelper.startPage(pageNum,pageSize);,如果是想知道总数的话,在查询的sql语句后买呢添加 page.getTotal()就可以了。

//代码示例:
public List<T> findByListEntity(T entity) {
        List<T> list = null;
        try {
            Page<?> page =PageHelper.startPage(1,2); 
            System.out.println(getClassName(entity)+"设置第一页两条数据!");
            list = getMapper().findByListEntity(entity);
            System.out.println("总共有:"+page.getTotal()+"条数据,实际返回:"+list.size()+"两条数据!");
        } catch (Exception e) {
            logger.error("查询"+getClassName(entity)+"失败!原因是:",e);
        }
        return list;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值