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. Linux shell 只删除目录下所有(不知道文件名字)文件,只删除文件夹

    #!/bin/sh RM="rm -rf" function delete_all_dir() { for i in `ls` do if [ -d $i ];then $RM $ ...

  2. C#依赖注入 简体demo

      class Program { static void Main(string[] args) { Dal dal = new MySql(); dal.Add(); Dal dal1 = new ...

  3. C# GZip Compress DeCompress

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. xlrd模块-读取Execl表格

    #xlrd模块 读取execl表格 import xlrd Execl = xlrd.open_workbook(r'Z:\Python学习\python26期视频\day76(allure参数.读e ...

  5. [AtCoder Code Festival 2017 QualB C/At3574] 3 Steps - 二分图染色,结论

    给你一个n个点m条边的无向图,进行以下操作 如果存在两个点u和v,使得从u走三步能恰好到达v,那么在u和v之间连接一条边 重复这个操作直到不能再连接新的边,问最后有多少条边? n, m <= 1 ...

  6. Wannafly Camp 2020 Day 3A 黑色气球

    #include <bits/stdc++.h> using namespace std; int a[1005][1005],n,x[1005]; int main() { scanf( ...

  7. 设置Eclipse中的字符集为UTF-8

    Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设置步骤如下: ...

  8. Yii2 JWT

    Yii2 JWT 这个扩展为Yii framework 2.0提供了JWT集成(需要PHP 5.6+).它包括基本的HTTP身份验证支持. 目录 安装 依赖关系 基本用法 创建 从字符串分析 验证 令 ...

  9. SSM项目集成Lucene+IKAnalyzer在Junit单元测试中执行异常

    个人博客 地址:http://www.wenhaofan.com/article/20181108132519 问题描述 在项目运行以及main方法中能够正常运行,但是使用junit单元测试时却报如下 ...

  10. JS高级---沙箱小案例

    沙箱小案例 substr截取, 从指定的字段开始截取 (function () { var str="小白喜欢小黑"; str=str.substr(2); console.log ...