spring boot Mybatis Plus分页

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
     */
    @Bean
    public 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 {
   
    
        @Autowired
        IStudentService 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

相关推荐

  1. springboot查询

    2024-02-18 09:16:01       57 阅读
  2. django--功能

    2024-02-18 09:16:01       58 阅读
  3. Django

    2024-02-18 09:16:01       71 阅读
  4. Python

    2024-02-18 09:16:01       53 阅读
  5. uniapp

    2024-02-18 09:16:01       59 阅读
  6. Mybatis

    2024-02-18 09:16:01       49 阅读
  7. MySQL 深度

    2024-02-18 09:16:01       34 阅读
  8. 5-实现

    2024-02-18 09:16:01       60 阅读
  9. ES问题

    2024-02-18 09:16:01       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 09:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 09:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 09:16:01       82 阅读
  4. Python语言-面向对象

    2024-02-18 09:16:01       91 阅读

热门阅读

  1. 【Qt笔记】QSS中常用的子控件

    2024-02-18 09:16:01       51 阅读
  2. ChatGPT用于润色中文学术论文

    2024-02-18 09:16:01       59 阅读
  3. 基于单片机的智能家居远程控制系统

    2024-02-18 09:16:01       47 阅读
  4. 【ChatGPT】的定价模式:免费还是收费?

    2024-02-18 09:16:01       108 阅读
  5. 自己在开发AI应用的过程总结的 Prompt - 持续更新

    2024-02-18 09:16:01       46 阅读
  6. LLM(2)之指令提示词(Prompt)基础教学

    2024-02-18 09:16:01       48 阅读
  7. 【pandas 不同文件读取和存储】

    2024-02-18 09:16:01       47 阅读
  8. C语言:国家名称按字母表排序

    2024-02-18 09:16:01       56 阅读
  9. 精通Nmap:网络扫描与安全的终极武器

    2024-02-18 09:16:01       43 阅读
  10. 探索XGBoost:深度集成与迁移学习

    2024-02-18 09:16:01       48 阅读
  11. pytorch神经网络入门代码

    2024-02-18 09:16:01       53 阅读
  12. 流畅的Python(十)-序列的修改、散列和切片

    2024-02-18 09:16:01       45 阅读
  13. 关于预训练模型的一点感悟

    2024-02-18 09:16:01       51 阅读
  14. 23种设计模式之:命令模式

    2024-02-18 09:16:01       44 阅读
  15. DAY52:动态规划(打家劫舍系列)

    2024-02-18 09:16:01       53 阅读