使用了Mybatis-plus的分页插件----IPage:
IPage 需要在dao层传入IPage的实现类Page对象,该对象实现了IPage
IPage内部原理是基于拦截器,拦截的是方法以及方法中的参数,会判断是否是查询操作。如果是查询操作,才会进入分页的逻辑处理。
进入分页的逻辑处理后,拦截器会通过反射获取该方法的参数进行判断是否存在IPage对象的实现类。如果不存在就不进行分页,存在则将该参数赋值给IPage对象。
然后进行拼接sql处理完成分页操作。
但是使用IPage需要注入一个Bean拦截器交给spring进行管理,否则不会进行拦截。
(注:MP另一个分页插件是PageHelper,不在此详细解释)
service:

    IPage<ESlideshow> getAll(IPage<Object> page);

serviceImpl:

@Overridepublic IPage<ESlideshow> getAll(IPage<Object> page) {IPage<ESlideshow> eSlideshowIPage= eSlideshowMapper.getAllPage(page);return eSlideshowIPage;}

mapper:

 @Select("SELECT * FROM e_slideshow WHERE is_deleted =0")IPage<ESlideshow> getAllPage(IPage<Object> page);

controller:

 @GetMapping("/all")public Result<Object> getAll(PageVO pageVO){IPage<ESlideshow> all=eSlideshowService.getAll(pageVO.buildPage());return Result.success(all);}

PageVO:

@Data
@ApiModel(value = "分页", description = "orders传参实例:[{'column': 'create_time','asc': false},{'column': 'name','asc': " +"true}]")
public class PageVO {/*** 当前页*/@ApiModelProperty(value = "当前页")private Integer current;/*** 当前页显示数据的条数*/@ApiModelProperty(value = "当前页显示数据的条数")private Integer size;/*** 获取排序信息,排序的字段和正反序*/@ApiModelProperty(value = "排序方式。(默认【创建时间倒序】:[{'column': 'create_time','asc': false}])。",notes = "例子:[{'column': 'create_time','asc': false},{'column':'name','asc': true}]")private String orders;/*** 当前页默认值为1*/public Integer getCurrent() {return current = (current == null || current <= 0) ? 1 : current;}/*** 每页大小默认为10*/public Integer getSize() {return size = (size == null || size == 0) ? 10 : size;}/*** description:将orders(json数组字符串)转为List*/public List<OrderItem> generateOrderList() {List<OrderItem> orderItemList = new ArrayList<>();if (StrUtil.isBlank(getOrders())) {orderItemList.add(OrderItem.desc("create_time"));} else {try {orderItemList = JSONArray.parseArray(orders, OrderItem.class);} catch (Exception e) {throw new BadRequestException("分页排序参数orders不合法,请传正确的参数格式——['column':'','asc':'true/false']");}}return orderItemList;}/*** description:根据pageVO构建分页查询IPage* @return IPage查询条件*/public <K> IPage<K> buildPage() {Page<K> page = new Page<>(getCurrent(), getSize());page.addOrder(generateOrderList());return page;}}

MyBatis-Plus分页插件IPage的使用展示------分页查询相关推荐

  1. MyBatis-Plus中分页插件IPage的使用

    MyBatis-Plus中分页插件IPage的使用 使用步骤: 1.服务层的接口需要继承 IService<实体类> ,定义分页查询方法,其返回值类型是 IPage<实体类> ...

  2. #displaytag:一个简易的Java分页插件(无需其他的前端分页插件) @FDDLC

    一.话题引入: 在开发一个某某系统时,经常要用到分页. 比如PageHelper,它是后端分页插件,如果要在前端展示分页效果,要么自己编写前端的分页逻辑,要么再上一个前端分页插件. 而displayt ...

  3. 分页插件 ajax请求,jquery ajax分页插件的简单实现

    说到基于jQuery的ajax分页插件,那我们就先看看主要的代码结构: 1.首先定义一个pager对象: var sjPager = window.sjPager = { opts: { //默认属性 ...

  4. html 分页插件ajax,简易ajax生成分页插件

    插件描述:jquery分页插件,可定义ajax获取数据的路由 使用方法 1.插件依赖jquery,使用前需要先引入jquery库 2.可定制生成分页的样式及ajax获取数据后处理dom元素的方法,例如 ...

  5. MyBatis 分页插件 PageHelper:是如何拦截SQL进行分页

    目录 Springboot项目集成 分页插件参数介绍 如何选择配置这些参数 场景一 场景二 场景三 场景四 场景五 PageHelper的使用 PageHelper实现原理1: interceptor ...

  6. Mybatis分页插件PageHelper简单使用

    转载自:https://www.cnblogs.com/ljdblog/p/6725094.html 引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句, ...

  7. Springboot集成mybatis通用Mapper与分页插件PageHelper

    Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...

  8. Mybatis:Mybatis分页插件

    文章目录 1. Mybatis分页插件 1.1 分页插件介绍 1.2 分页插件的使用 1.3 分页插件的参数获取 1.4 分页插件知识小结 分页助手相关 API 1. Mybatis分页插件 1.1 ...

  9. MyBatis Generator如何实现MYSQL分页插件

    前言 MyBatisGenerator是一个非常方便的代码生成工具,它能够根据表结构生成CRUD代码,可以满足大部分需求.但是唯一让人不爽的是,生成的代码中的数据库查询没有分页功能.本文介绍如何让My ...

最新文章

  1. python设置环境路径_window10配置python虚拟环境的路径
  2. 【转载】知乎答案----孙志岗----Google 发布了程序员养成指南,国内互联网巨头是否也有类似的指南和课程推荐...
  3. html4废弃了哪些元素,HTML中的一些废弃元素_html
  4. 抽象思想解读Linux进程描述符
  5. 从JSP WEB页面往数据库写入出现乱码的一种解决方法
  6. ssis 表达式任务_SSIS表达式任务与将变量作为表达式求值
  7. JZOJ5787轨道(容斥+DP)
  8. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  9. python配置文件读取环境变量_转载:Python项目读取配置的几种方式
  10. 【LINUX C 写文件】
  11. 4、那智机器人显示画面的构成和含义
  12. 图像风格迁移Android,图像风格迁移(Pytorch)
  13. 串行口通讯测试软件,485串口测试软件
  14. 3.3 三极管的的概念及其工作原理
  15. [网络安全提高篇] 一一六.恶意代码同源分析及BinDiff软件基础用法
  16. 混沌理论(Chaos Theory)
  17. 787. K 站中转内最便宜的航班
  18. 电脑配置单4(自用勿删)
  19. 物联网系列之WIFI模块ESP8266一介绍
  20. 树莓派制作自己的小车车(上)

热门文章

  1. 短视频app源码开发,短视频平台框架搭建
  2. react ssr 服务端渲染入门
  3. java 实现百度熊掌号历史资源记录提交
  4. R语言使用caret包的train函数构建惩罚判别分析模型(pda)构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标
  5. 【亚马逊运营】如何提升选品效率的小技巧值得卖家们收藏?
  6. AHB、APB、AXI三种协议对比分析(AMBA总线)
  7. 使用BP神经网络进行预测(电力负荷预测)
  8. 计算机进制转进制,计算机中进制及进制转换
  9. 迁移学习笔记——Adapting Component Analysis
  10. nnU-Net: Self-Adapting Framework for U-Net-Based Medical Image Segmentation