zoukankan      html  css  js  c++  java
  • MyBatis分页组件--PageHelper

    一.介绍

      PageHelper是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。

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

    GitHub地址:https://github.com/pagehelper/Mybatis-PageHelper

    How To Use:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/en/HowToUse.md

    二.基本使用

    1.第一步:导入Maven坐标

    <!-- 集中定义依赖版本号 -->
    <properties>
        <pagehelper.version>5.1.2</pagehelper.version>
    </properties>
    <dependencies>
        <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper</artifactId>
             <version>${pagehelper.version}</version>
        </dependency>
    </dependencies>

    2.第二步:在Spring配置文件中配置拦截器插件

    applicationContext-dao.xml

    <!-- 配置sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置实体类别名 -->
        <property name="typeAliasesPackage" value="cn.dintalk.domain"/>
        
        <!-- 配置pageHelper分页的插件 -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 -->
                    <property name="properties">
                        <value>
                            <!-- 可区分数据库 -->
                            helperDialect=mysql
                            <!-- 是否合理分页,针对首页尾页越界 -->
                            reasonable=true
                        </value>
                    </property>
                </bean>
            </array>
        </property>
        
    </bean>

    Tips: helperDialect:分页插件自定检测当前的数据库连接,选择合适的分页方式,可配置helperDialect属性来指定分页插件使用哪种方言,可使用以下缩写值:oracle, mysql, mariadb, sqlite,等等。还有其他的配置,需要时请查阅官方文档。

    3.第三步:service层分页

    PageHelper的基本使用有6种,可见官方文档。这里介绍PageHelper.startPage的静态方法。

    dao层代码

    // 查询所有
    List<Company> findAll();

    dao层映射.xml

    <!-- 查询所有 -->
    <select id="findAll" resultMap="baseResultMap">
        select * from sh_company
    </select>

    service层代码

    //使用PageHelper分页查询,page:当前页面,size:每页显示数量
    public PageInfo findPageByHelper(int page, int size) {
        //1.调用静态方法,开始分页
        PageHelper.startPage(page,size);
        //2.照常调用
        List<Company> companies = companyDao.findAll();
        return new PageInfo(companies);
    }

    Tips: 在需要分页的MyBatis查询方法前调用 PageHelper.startPage 静态方法即可。格外需要注意的是:(紧跟在这个方法后的第一个MyBatis查询方法或被进行分页),因此在使用的时候留意顺序。

    • 返回值PageInfo中包含了分页页面所需的一切信息,包括展示的数据及页码、上一页等等。在页面取值的时候可以跟到PageInfo源码中查看清楚即可!

    关注微信公众号,随时随地学习

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/dintalk/p/10852862.html
Copyright © 2011-2022 走看看