当前位置: 首页 > news >正文

spring boot Mybatis Plus分页

文章目录

    • Mybatis Plus自带分页和PageHelper有什么区别?
      • Mybatis Plus整合PageHelper分页
    • springboot自定义拦截器获取分页参数
      • spring boot下配置mybatis-plus分页插件
      • 单表分页查询
      • 自定义sql分页查询
      • PageHelper
    • 参考

Mybatis Plus自带分页和PageHelper有什么区别?

网上描述:
Mapper Plus自带分页PaginationInterceptor对象,虽然说目前没有什么问题,并且使用简单,但是个人感觉有个弊端:目前个人使用中,想要用Mapper Plus自带的分页功能的话需要在mapper对象中传入一个Page对象才可以实现分页,这样耦合度是不是太高了一点,从web到service到mapper,这个Page对象一直都在传入,这样的使用让人感觉有点麻烦~

Mybatis Plus整合PageHelper分页

Mybatis Plus整合PageHelper分页
参考URL: https://blog.csdn.net/m0_37701381/article/details/100719280
SpringBoot2.1+MybatisPlus+Pagehelper框架整合(其中与Dubbo整合时分页失效的疑问与解决)
参考UIRL: https://blog.csdn.net/lstcui/article/details/89068918

springboot自定义拦截器获取分页参数

ThreadLocal Pager 分页的一种解决方案
参考URL: https://blog.csdn.net/cmdsmith/article/details/66969728

spring boot下配置mybatis-plus分页插件

springBoot 使用 mybatis-plus 插件 实现分页
https://blog.csdn.net/sinat_34338162/article/details/83543994?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

需要写一个分页的配置类分页功能才能生效

/***  //Spring boot方式* @Description: MybatisPlus配置类*/
@Configuration
public class MyBatisPlusConfig {/*** 分页插件* @return*/@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}

单表分页查询

如果只是单表,那么分页查询就容易的多了。
这里的@ModelAttribute注解可以将前端传过来的current和size字段映射到Page对象中。

   /*** @param page 查询一般传入参数为current和size, 例如/listPage?current=1&size=5,* @return 返回分页数据*/@RequestMapping(value = "/page", method = RequestMethod.GET)public ResponseObj<Page<T>> listPage(@ModelAttribute Page<T> page, @ModelAttribute T model) {Page<T> pageList = service.selectPage(page, new EntityWrapper<>(model));for (T eachObj : pageList.getRecords()) {queryFilter(eachObj);}return new ResponseObj<>(pageList, RetCode.SUCCESS);}
    @RestController@RequestMapping("/student")public class StudentController {@AutowiredIStudentService studentService;@RequestMapping(value = "/findAll",method = RequestMethod.POST)public Object findAll(HttpServletRequest request){//获取前台发送过来的数据Integer pageNo = Integer.valueOf(request.getParameter("pageNo"));Integer pageSize = Integer.valueOf(request.getParameter("pageSize"));IPage<Student> page = new Page<>(pageNo, pageSize);QueryWrapper<Student> wrapper = new QueryWrapper<>();Student student = new Student();student.setId(1);wrapper.setEntity(student);return studentService.page(page,wrapper);}}

总结: 整体思路很简单,需要2个参数,一个是 IPage page实例,传入pageNo、pageSize ,一个是QueryWrapper wrapper实例。 使用时把page传入会自动在sql语句后面添加limit。

自定义sql分页查询

有时候查询的数据难免会出现多表连接查询,或者是一些复杂的sql语句,但是这些语句也是需要支持分页查询的。

先定义查询接口,第一个参数要是分页的参数。

步骤一:在mapper文件中,编写对应的分页查询接口。

步骤二:在xml中编写对应的sql语句,小编这里演示的 “${ew.customSqlSegment}”,这个是如果你想自定义的sql语句,也想使用wrapper查询条件构造器,则需要在mapper接口中添加参数,以及xml中也要有固定。

PageHelper

PageHelper用于查询语句分页,让分页更简单、代码更优雅。

参考

MyBatis-Plus 分页查询以及自定义sql分页
参考URL: https://blog.csdn.net/weixin_38111957/article/details/91554108?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
mybatis-plus分页查询
参考URL: https://www.jianshu.com/p/43bfe6fe8d89

http://www.lryc.cn/news/301341.html

相关文章:

  • elementui 中 el-date-picker 控制选择当前年之前或者之后的年份
  • GlusterFS:开源分布式文件系统的深度解析与应用场景实践
  • 第6个-滚动动画
  • 配置oracle连接管理器(cman)
  • [N-142]基于springboot,vue停车场管理系统
  • DAY53:动态规划(买股票的最佳时机)
  • 快速实现用户认证:使用Python和Flask配合PyJWT生成与解密Token的教程及示例代码
  • 外汇110:外汇做空是什么意思?如何运作?一文读懂
  • 【记录】个人博客或笔记中的数学符号设定
  • Redis Sentinel工作原理
  • GEE入门篇|遥感专业术语:理论介绍
  • react中如何做到中断diff过程和恢复
  • python:PyPDF2 从PDF文件中提取目录
  • Java 2:运算符、表达式和语句
  • 批量提取word文件中文本框内容的三种方法
  • Leecode之合并两个有序链表
  • 陶建国教授谈中西方文化的差异与交融
  • Ps:画笔选项
  • 嵌入式——Flash(W25Q64)
  • stm32:pwm output模块,记录一下我是用smt32,输出pwm波的记录--(实现--重要)
  • phpstrom创建thinkphp项目
  • 【Linux】线程同步
  • 如何在多头自注意力机制的交叉学习中引入对于物理、生理、心理世界客观规律的对照验证...
  • 智慧公厕:让智慧城市的公共厕所焕发“智慧活力”
  • vue导出word文档(图文示例)
  • 【C Primer Plus第六版 学习笔记】 第十七章 高级数据表示
  • 租用一个服务器需要多少钱?2024阿里云新版报价
  • python-产品篇-游戏-成语填填乐
  • 数据库数据加密的 4 种常见思路的对比
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-PWM