博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分页插件PageHelper
阅读量:4692 次
发布时间:2019-06-09

本文共 2889 字,大约阅读时间需要 9 分钟。

1.  需要引入PageHelperjar

如果没有使用maven,那直接把jar包导入到lib文件夹下即可,这个PageHelper插件在github上有开源,地址为:。 

如果使用了maven,那么只要在pom.xml中引入该插件即可,引入如下:

<dependency>

    <groupId>com.github.pagehelper</groupId>

    <artifactId>pagehelper</artifactId>

    <version>4.1.4</version>

</dependency>

2. mybatis的全局配置文件SqlMapConfig.xml中配置该插件

<configuration>

 

   <settings>

      <setting name="logImpl" value="STDOUT_LOGGING" />

   </settings>

   <plugins>

      <!-- 配置分页助手 -->

      <plugin interceptor="com.github.pagehelper.PageHelper">

        <property name="dialect" value="mysql" />

        <!-- 该参数默认为false -->

        <!-- 设置为true时,使用RowBounds分页会进行count查询 -->

        <property name="rowBoundsWithCount" value="true" />

      </plugin>

     

   </plugins>

</configuration>

 

3定义需要用到的实体,里面包括页数,数据总数等等

package com.edu.mooc.common.bean;

 

import java.util.List;

 

import com.fasterxml.jackson.databind.JsonNode;

import com.fasterxml.jackson.databind.ObjectMapper;

 

public class PageInfoResult {

 

   // 定义jackson对象

   private static final ObjectMapper MAPPER = new ObjectMapper();

 

   private Integer total;// 总记录数

 

   private List<?> rows;// 分页查询集合数

 

   private int page;// 页码

 

   public static int page_rows = 10;// 每页条数

 

   public PageInfoResult() {

   }

 

   public PageInfoResult(Integer total, List<?> rows) {

      this.total = total;

      this.rows = rows;

   }

 

   public PageInfoResult(Long total, List<?> rows) {

      this.total = total.intValue();

      this.rows = rows;

   }

 

 

   public Integer getTotal() {

      return total;

   }

 

   public void setTotal(Integer total) {

      this.total = total;

   }

 

   public List<?> getRows() {

      return rows;

   }

 

   public void setRows(List<?> rows) {

      this.rows = rows;

   }

 

   public int getPage() {

      return page;

   }

 

   public void setPage(int page) {

      this.page = page;

   }

 

   public int getPage_rows() {

      return page_rows;

   }

 

   /*

    * 计算页码总数

    */

   public int total_page() {

      // 判断页码是否能和每页条数整除,能—>商为总页码,否->商+1为总页码

      return total % page_rows == 0 ? total / page_rows : total / page_rows + 1;

   }

 

   /**

    * Object是集合转化

    *

    * @param jsonData

    *            json数据

    * @param clazz

    *            集合中的类型

    * @return

    */

   public static PageInfoResult formatToList(String jsonData, Class<?> clazz) {

      try {

        JsonNode jsonNode = MAPPER.readTree(jsonData);

        JsonNode data = jsonNode.get("rows");

        List<?> list = null;

        if (data.isArray() && data.size() > 0) {

           list = MAPPER.readValue(data.traverse(),

                 MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));

        }

        return new PageInfoResult(jsonNode.get("total").intValue(), list);

      } catch (Exception e) {

        return null;

      }

   }

 

}

 

4. 分页插件进行分页处理

   public PageInfoResult queryAdminList(PageInfoResult infoResult){

      //判断该页面是否为第一页。是第一页。手动赋页码

           if(infoResult.getPage()==0){

              infoResult.setPage(1);

           }

           //使用分页插件进行分页

           PageHelper.startPage(infoResult.getPage(), infoResult.getPage_rows());

           List<SysUser> admin_list = adminLoginMapper.queryAdminList();

      //对Page结果进行包装   

PageInfo<SysUser> pageInfo=new PageInfo<>(admin_list);

           PageInfoResult result=new PageInfoResult(pageInfo.getTotal(), admin_list);

           result.setPage(infoResult.getPage());

          

           return result;

   }

转载于:https://www.cnblogs.com/CookiesBear/p/6197826.html

你可能感兴趣的文章
SQL case when else
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
我的第一篇博客
查看>>
【C++算法与数据结构学习笔记------单链表实现多项式】
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>
python之hasattr、getattr和setattr函数
查看>>
maven使用阿里镜像配置文件
查看>>
Copy code from eclipse to word, save syntax.
查看>>
arguments.callee的作用及替换方案
查看>>
23 Java学习之RandomAccessFile
查看>>
P2709 小B的询问
查看>>
PHP echo 和 print 语句
查看>>
第一讲 一个简单的Qt程序分析
查看>>
Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置
查看>>
poj 1979 Red and Black(dfs)
查看>>
【.Net基础03】HttpWebRequest模拟浏览器登陆
查看>>
zTree async 动态参数处理
查看>>
Oracle学习之常见错误整理
查看>>