首页 > 其他 > 详细

mybatis分页插件PageHelp的使用

时间:2019-12-11 14:12:12      阅读:91      评论:0      收藏:0      [点我收藏+]

1.简介

? PageHelper 是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 mysql、oracle、mariaDB、DB2、SQLite、Hsqldb 等。需要注意的是,该插件是mybatis的插件,无法使用到其他的持久层框架上。下面附上官网地址

网址:https://pagehelper.github.io/

2.使用步骤

2.1 导入依赖

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

2.2 在mybatis的配置文件中添加配置

<!--sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="cn.test.domain"/>
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <!--使用下面的方式配置参数,一行配置一个 -->
                        <value>
                            params=mysql
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

解析:
技术分享图片

其中红色部分为pagehelp插件的配置,蓝色方框部分根据你的数据库的类型进行配置,我这里使用了mysql。所以配置了params=mysql

2.3 在代码中使用

使用PageHelper.startPage 静态方法调用

// PageInfo等同于我们自定义的pageBean 并且比pageBean更完善
public PageInfo<User> findByPage(Integer page, Integer pageSize) {
   PageHelper.startPage(page,pageSize);  //使用分页插件 一定要紧跟一个查询方法
   List<User> list = userDao.findAll(); //表面上是查询所有,但是执行时已经分页了
   return new PageInfo<Company>(list,5);
}

解析

技术分享图片

2.4 PageInfo对象介绍

使用该插件返回的是PageInfo对象,下面我们对其中的属性进行分析:

public class PageInfo<T> implements Serializable {
   private static final long serialVersionUID = 1L;
   //当前页
   private int pageNum;
   //每页的数量
   private int pageSize;
   //当前页的数量
   private int size;
 
   //由于startRow和endRow不常用,这里说个具体的用法
   //可以在页面中"显示startRow到endRow 共size条数据"
 
   //当前页面第一个元素在数据库中的行号
   private int startRow;
   //当前页面最后一个元素在数据库中的行号
   private int endRow;
   //总记录数
   private long total;
   //总页数
   private int pages;
   //结果集
   private List<T> list;
 
   //前一页
   private int prePage;
   //下一页
   private int nextPage;
 
   //是否为第一页
   private boolean isFirstPage = false;
   //是否为最后一页
   private boolean isLastPage = false;
   //是否有前一页
   private boolean hasPreviousPage = false;
   //是否有下一页
   private boolean hasNextPage = false;
   //导航页码数
   private int navigatePages;
   //所有导航页号
   private int[] navigatepageNums;
   //导航条上的第一页
   private int navigateFirstPage;
   //导航条上的最后一页
   private int navigateLastPage;

}

mybatis分页插件PageHelp的使用

原文:https://www.cnblogs.com/changchangchang/p/12021895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!