分页插件pagehelper的用法

pagehelper的使用

使用方法:
1.引入Maven依赖:

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.1.8</version>
</dependency>

<dependency>
   <groupId>com.github.jsqlparser</groupId>
   <artifactId>jsqlparser</artifactId>
   <version>0.9.5</version>
</dependency>

2.在Mybatis的配置文件中配置或在spring-mybatis.xml配置文件中配置(后者更方便)
在SqlConfig.xml中配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--集成MyBatis的分页插件PageHelper-->
    <plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- 当前所使用的数据库 -->
            <property name="helperDialect" value="mysql"/>
            <!--合理化分页参数-->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>
</configuration>

spring-mybatis.xml中: 在创建SqlSessionFactoryBean时顺便创建PageInterceptor(5.0以上为PageInterceptor,5.0以下为PageHelper)

<!--
    3.创建SqlSessionFactoryBean
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--指定数据源-->
    <property name="dataSource" ref="dataSource" />
    <!-- 注意其他配置 -->
    <property name="plugins">
        <array>
            <bean class="com.github.pagehelper.PageInterceptor">
                <property name="properties">
                    <props>
                        <prop key="helperDialect">mysql</prop>    <!--数据库类型设置-->
                        <prop key="reasonable">true</prop>        <!--合理性设置,即第一页的上一页还是第一页等-->
                    </props>
                </property>
            </bean>
        </array>
    </property>
</bean>

3.使用方法:
1. 在Mybatis代理的接口方法执行前使用PageHelper.startPage(pageNum,size)方 法即可;第一个参数为第几页,第二个参数为每页数据的条数
2. 这两个参数通常由页面传入,并由Controller接收
3.在Controller中创建PageInfo对象并返回此对象给网页即可: PageInfo info = new PageInfo<>(list); (需注入查询的数据集合)
4.在网页中通过获取PageInfo对象可获取到关于分页的所有信息

//Controller中
@RequestMapping(value = "/list")
public ModelAndView list(@RequestParam(defaultValue = "1",required = false) Integer pageNum, @RequestParam(defaultValue = "2",required = false) Integer size) throws JsonProcessingException, ParseException {          //通过@RequestParam注解给两个参数设置属性:默认值,非必要
    List<Product> list = service.list(pageNum,size);       //由网页传入两个参数
    PageInfo<Product> info = new PageInfo<>(list);         //将查询结果集合注入到PageInfo中,并返回此对象给网页即可
    return new ModelAndView("product-list","pageInfo",info);
}

//Service中
@Override
public List<Product> list(Integer pageNum, Integer size) {
    PageHelper.startPage(pageNum,size);
    return productMapper.list();
}

在jsp中获取PageInfo的属性即可,PageInfo的属性:

//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//排序
private String orderBy;

//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据"

//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;

//第一页
private int firstPage;
//前一页
private int prePage;
//下一页
private int nextPage;
//最后一页
private int lastPage;

//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值