• pageHelper(分页插件的使用)


    1.分页概述:
      1.1.为什么要分页?
        1.1.1.为了提高查询效率
        1.1.2.为了方便查看数据

    1.2.分页的三个必要条件:
      当前页:由使用者提供
      每一页显示大小:由使用者提供
      总记录数:从数据库表统计

    2.PageHelper概述
      2.1.PageHelper使用步骤:
        2.2.1.配置pom.xml,导入依赖包(官方推荐使用最新版本)
        2.2.2.在sqlMapConfig.xml配置插件
        2.2.3.在目标方法前,调用PageHelper.startPage(当前页,页面大小)
    PageInfo

    PageHelper介绍

    PageHelper是国内非常优秀的一款开源的mybatis分页插件, 它支持主流的常用数据库, 例如mysql、 oracle、 mariaDB、 DB2、 SQLite、 Hsqldb等。

    使用步骤

    <!--pageHelper版本-->
    <page.version>5.1.4</page.version>
    
    <!--分页插件依赖-->
    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>${page.version}</version>
    </dependency>

    在sqlMapConfig.xml

    <!--配置插件-->
    <plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
    <!-- 配置相关参数,通常情况使用默认值即可,不需要配置-->
    <!--配置指定当前使用的数据库-->
    <property name="helperDialect"value="mysql"/>
    </plugin>
    </plugins>

    测试代码

     1 /**
     2      * 2.分页测试
     3      */
     4 @Test
     5 public void pageQueryTest(){
     6 // 1.获取SqlSessionFactory
     7 SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtil.getSqlSessionFactory();
     8 
     9 // 2.创建sqlSession对象
    10 SqlSession sqlSession = sqlSessionFactory.openSession();
    11 
    12 // 3.获取接口的代理对象
    13 UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    14 
    15 // 4.执行数据库操作
    16         // 创建pojo包装类型
    17 QueryVo queryVo = new QueryVo();
    18 
    19 // 创建用户对象
    20 User user = new User();
    21         user.setUsername("");
    22 
    23 // 包装用户
    24 queryVo.setUser(user);
    25 
    26 // 设置分页
    27         /**
    28          * 设置分页参数方法:startPage()。
    29          * 参数:
    30          *      参数一:当前页
    31          *      参数二:每一页显示大小
    32          *
    33          *  细节:
    34          *      该方法要在目标操作前设置
    35          */
    36 PageHelper.startPage(1, 2);// 查询第一页,每一页显示2条记录
    37 
    38         // 目标操作:查询用户数据
    39 List<User> list = mapper.queryUserByQueryVo(queryVo);
    40 
    41 /**
    42          * 封装分页结果数据:PageInfo
    43          */
    44 PageInfo<User> pageInfo = new PageInfo<User>(list);
    45 
    46 /**
    47          * 打印结果
    48          */
    49 System.out.println("上一页:"+pageInfo.getPrePage());
    50         System.out.println("当前页:"+pageInfo.getPageNum());
    51         System.out.println("下一页:"+pageInfo.getNextPage());
    52 
    53         System.out.println("每一页页显示大小:"+pageInfo.getPageSize());
    54         System.out.println("总记录数:"+pageInfo.getTotal());
    55         System.out.println("页数:"+pageInfo.getPages());
    56 
    57 // 获取页号:1 2 3 4 5 6
    58 int[] nums = pageInfo.getNavigatepageNums();
    59         System.out.print("页号:");
    60 for(int i=0;i<nums.length;i++){
    61             System.out.print(nums[i]+",");
    62         }
    63         System.out.println();
    64 
    65 // 获取结果集
    66 System.out.println("结果集数据:");
    67         List<User> pageList = pageInfo.getList();
    68 for(User u:pageList){
    69             System.out.println(u);
    70         }
    71 
    72 // 5.释放资源
    73 sqlSession.close();
    74     }
    75 
    76 }
  • 相关阅读:
    如何利用tinyxml操纵xml及注意问题
    C++使用tinyxml解析Xml内存泄漏问题
    介绍一下 linux命令 nohup 和 & 使得程序在后台运行
    RTP有效负载(载荷)类型 (RTP Payload Type)
    makefile 语法 /usr/bin/ld: cannot find -lxxxx
    C# + Matlab 实现计件工时基于三层BP神经网络的拟合--真实项目
    C#+Arduino Uno 实现声控系统完全实施手册
    DHT11温度传感器
    PbootCMS二次开发的查询
    腾讯云存储PHP上传实例【代码示例】
  • 原文地址:https://www.cnblogs.com/Jeremy95-Sze/p/13197987.html
Copyright © 2020-2023  润新知