Mybatis分页插件PageHelper的使用

文章目录:

    • Maven依赖包
    • PageHelper插件使用
    • 插件配置
    • 小提示

最近写项目,自己手动写SQL已经很麻烦了,分页的时候还需要自己手动分页的话,就更复杂了,这里使用PageHelper这个插件来简化分页操作。
使用这个插件,在SQL中不用写分页信息,通过MyBatis拦截器来添加分页信息,再执行分页SQL。


Maven依赖包

在pom.xml文件中添加依赖:

<dependency>
    <groupId>com.github.pagehelpergroupId>
    <artifactId>pagehelperartifactId>
    <version>${pagehelper.version}version>
dependency>

PageHelper插件使用

先使用PageHelper.startPage(pageNum,pageSize,countBoolean)来设置分页信息。pageNum是当前页码,pageSize是页面尺寸,countBoolean是是否统计总数。
再执行查询语句。
最后将查询结果封装到new PageInfo<>(list)里面。上面设置了countBoolean参数为true时,可以在对象PageInfo中获取到总条数total等信息。

看这个简单的例子:

public PageInfo selectAdOrderByCreateTime(int pageNum, int pageSize) {
        //分页计数
        PageHelper.startPage(pageNum,pageSize,true);
        //查询
        TmAdExample tmAdExample = new TmAdExample();
        tmAdExample.setOrderByClause("create_time desc");
        List list = tmAdMapper.selectByExample(tmAdExample);
        //封装、返回
        return new PageInfo<>(list);
    }

插件配置

需要在mybatis-config.xml中配置PageHelper插件:

      
      
      
    <configuration>  
        <plugins>  
              
            <plugin interceptor="com.github.pagehelper.PageHelper">  
                  
                <property name="dialect" value="oracle"/>  
                  
                  
                  
                <property name="offsetAsPageNum" value="true"/>  
                  
                  
                <property name="rowBoundsWithCount" value="true"/>  
                  
                  
                <property name="pageSizeZero" value="true"/>  
                  
                  
                  
                <property name="reasonable" value="true"/>  
                  
                  
                  
                  
                <property name="params" value="pageNum=start;pageSize=limit;"/>  
                  
                <property name="supportMethodsArguments" value="true"/>  
                  
                <property name="returnPageInfo" value="check"/>  
            plugin>  
        plugins>  
    configuration>  

再在spring.xml中配置sqlSessionFactory时引入mybatis-config.xml的配置。


小提示

  1. PageHelper设置分页信息的时候,必须写在查询语句之前。

  2. 若一个方法里面有两句查询语句的话,第一句已经写了PageHelper设置分页信息以后,第二句的分页信息需要重新写。如果第二句不需要分页,则使用PageHelper.clearPage()清除分页信息。

  3. 暂时就这么多,想到再写。

你可能感兴趣的:(Java)