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源码中查看清楚即可!

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

  • 相关阅读:
    新浪微博数据抓取(java实现)
    在Tomcat下配置Solr 4.x 版本
    使用AWT组件实现验证码功能
    css自动换行
    CentOS6.5把MySQL从5.1升级到5.6后,MySQL不能启动
    centos绑定多个域名
    Centos下Yum安装PHP5.5,5.6,7.0
    CSS总结
    覆盖物
    高德地图插件
  • 原文地址:https://www.cnblogs.com/dintalk/p/10852862.html
Copyright © 2011-2022 走看看