mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和springboot项目中使用mybatis pagehelper

一、mybatis pagehelper在SSM项目中的使用

1.引入maven依赖,(自行选择版本,这里我用的4.1.3)

2.在mybatis的配置文件中进行配置

<plugins>
<!--pageNum当前页数 pageSize 每页显示的记录数,pages 总页数 totals总记录数 -->
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!--设置数据库方言,这里我用的mysql-->
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="true"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
<property name="pageSizeZero" value="true"/>
<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="false"/>
</plugin>
</plugins>

3.使用mybatis分页插件

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
/**
* 分页查询视频列表
* @param pageNum
* @param pageSize
* @return JqueryGrid
*/
@Transactional(propagation = Propagation.SUPPORTS)
public JqueryGrid selectVideoListVo(Integer pageNum, Integer pageSize){
//开始使用mybatis 分页插件
PageHelper.startPage(pageNum,pageSize);
List<VideoVo> videoVoList = videosMapper.selectVideoListVo();
PageInfo<VideoVo> pageInfo = new PageInfo<VideoVo>(videoVoList);
JqueryGrid jqueryGrid = new JqueryGrid();
//设置当前页
jqueryGrid.setPage(pageInfo.getPageNum());
//设置总页数
jqueryGrid.setTotal(pageInfo.getPages());
//设置总记录数
jqueryGrid.setRecords(pageInfo.getTotal());
//设置当前页的list集合
jqueryGrid.setRows(pageInfo.getList());
return jqueryGrid;
}

在该方法中,传入了当前页 (pageNum),以及每一页显示的数量(pageSize),我们对遍历的列表再进行分页查询,得到最终想要的结果。

二、mybatis pagehelper在springboot项目中的使用

1.导入maven依赖

<!--pagehelper 用于springboot项目-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>

</dependency>

2.在applicationContext.xml或applicationContext.yml中进行配置

3.使用mybatis分页插件

import com.github.pagehelper.PageHelper;
        import com.github.pagehelper.PageInfo;

@Transactional(propagation = Propagation.SUPPORTS)
public PagedResult selectMyFollow(Integer pageNum,String userId,Integer pageSize) {
if(pageNum==null||pageNum<=0) {
pageNum=1;
}
//进行分页
PageHelper.startPage(pageNum, pageSize);
//查询到该用户发布的所有的视频

List<Users> userList =usersMapper.selectMyFollow(userId);

//

PageInfo<Users> pageInfoList = new PageInfo<Users>(userList);
PagedResult pagedResult = new PagedResult();
//当前页数
pagedResult.setPageNum(pageInfoList.getPageNum());
//总页数
pagedResult.setPages(pageInfoList.getPages());
//总记录数
pagedResult.setTotals(pageInfoList.getTotal());
//设置当前页的列表内容
pagedResult.setPageList(pageInfoList.getList());
return pagedResult;

}

该方法返回的就是一个分页查询之后封装的一个对象。

==========================================================================

在SSM和springboot项目中引入mybatis pagehelper的方法就介绍到这里了。

PageInfo(com.github.pagehelper.PageInfo)类中有几个属性,其中 pageNum表示当前页,pages表示总页数,total表示总记录数,List表示当前页的列表内容。

后端分页神器,mybatis pagehelper 在SSM与springboot项目中的使用的更多相关文章

  1. 在前后端分离的SpringBoot项目中集成Shiro权限框架

    参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及

  2. 使用maven构建项目时,SSM和springboot项目的打包与云服务器部署

    下面讲讲如何打包SSM和springboot项目,并部署到云服务器上. 由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven ...

  3. Python分页转Mybatis pagehelper格式分页

    最近工作里遇到一个需求要把之前用Java写的一个http接口替换成用Python写的,出参是带了mybatis pageHelper中PageInfo信息的一个JSON串,而Python这边分页不会涉 ...

  4. SpringBoot项目中,Mybatis的使用

    项目中使用MyBatis的地方很少,可以说是基本不用,慕课网上面这个项目介绍给也就是一些比较简单的使用例子,我用JPA比较的多,MyBatis有两种使用方式 1.导入MyBatis的依赖 <de ...

  5. 第18章—后端分页(Mybatis)

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  6. 在springboot项目中使用mybatis 集成 Sharding-JDBC

    前段时间写了篇如何使用Sharding-JDBC进行分库分表的例子,相信能够感受到Sharding-JDBC的强大了,而且使用配置都非常干净.官方支持的功能还包括读写分离.分布式主键.强制路由等.这里 ...

  7. idea中运行ssm 或springboot项目时,project Structure的配置

    ctrl+alt+shift+s进入 project Structure 首先是project选项 Modules 标明source testsource 以及 resource 和 testreso ...

  8. 使用SSM 或者 springboot +mybatis时,对数据库的认证信息(用户名,密码)进行加密。

    通常情况下,为了提高安全性,我们需要对数据库的认证信息进行加密操作,然后在启动项目的时候,会自动解密来核对信息是否正确.下面介绍在SSM和springboot项目中分别是怎样实现的. 无论是使用SSM ...

  9. Thymeleaf前后端分页查询

    分页查询是一个很常见的功能,对于分页也有很多封装好的轮子供我们使用. 比如使用mybatis做后端分页可以用Pagehelper这个插件,如果使用SpringDataJPA更方便,直接就内置的分页查询 ...

随机推荐

  1. Docker 使用记录

    1.Docker 镜像加载本地镜像 2.Docker 创建镜像: 创建dockerfile 文件: 进入到文件目录下: 输入命令 docker build -t xxxx . 注意:后面的小点要有, ...

  2. C++中public、protected、private的区别(转载)

    转载:https://blog.csdn.net/vanturman/article/details/79393317   首先记住一点:派生类能且只能访问基类的public和protected成员! ...

  3. 查找pod使用的物理目录位置

    例子:找出当前pod挂载的是哪个物理目录 # 先查看pod web-0 的yaml文件 # kubectl get pod web-0 -o yaml apiVersion: v1 kind: Pod ...

  4. MongoDB批量更新和批量插入的方式

    最近,在调试代码中发现向MongoDB插入或者更新文档记录时若是多条的话都是采用for循环操作的,这样的处理方式会造成数据操作耗时,不符合批量处理的原则:对此,个人整理了一下有关MongoDB的批量更 ...

  5. SVN的使用01

    关于svn的使用以及TortoiseSVN常见操作 一.关于svn介绍 在介绍之前提一下,MyEclipse项目组的建立,以及源文件夹的创建. 新建的那一栏点击other 在搜索栏中搜索Java Wo ...

  6. 【你不知道的javaScript 上卷 笔记6】javaScript中的对象相关内容

    一.创建一个对象的语法 var myObj = { key: value // ... };//字面量 var myObj = new Object(); //new myObj.key = valu ...

  7. XJOI CSP-S2 2019开放模拟训练题1 赛后总结

    比赛链接 友好数对 暴力枚举\([L,R]\)之间的所有数,将每个数进行"旋转",看是否符合题意. 注意"旋转"的次数,并不一定是数字位数.只要旋转回到了初始数 ...

  8. 【资源分享】Gmod自瞄自动开枪脚本

    *----------------------------------------------[下载区]----------------------------------------------* ...

  9. 第一篇 网站基础知识 第7章 Tomcat分析

    7.1 Tomcat的顶层结构及启动过程 7.1.1 Tomcat的顶层结构 Tomcat中最顶层的容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务.Se ...

  10. PATA-1151 LCA in a Binary Tree

    题意:根据前序和中序建立树,寻找两个点的LCA. 我在之前的博客中写了关于LCA的多种求法. https://www.cnblogs.com/yy-1046741080/p/11505547.html ...