Mybatis-plus的分页查询

  • 1. 简单说明
  • 2. 介绍说明
  • 3. 完整配置类代码:
  • 4. 示例代码
  • 5. 最后总结

1. 简单说明

嗨,大家好!今天给大家分享的是Mybatis-plus 插件的分页机制,说起分页机制,相信我们程序员都不陌生,今天,我就给大家分享一下Mybatis-plus的分页机制,供大家学习和Copy。

2. 介绍说明

如果你想看代码,可以直接跳到代码区域,这里只是一些简单的说明,如果你想学习,建议可以看看这一块的任容

本章节将介绍 BaseMapper 中的分页查询,BaseMapper 接口提供了如下几个分页查询接口:

  • selectPage:根据 entity 条件,查询全部记录
  • selectMapsPage:根据 Wrapper 条件,查询全部记录

在使用上面两个方法进行分页查询时,我们需要配置分页插件。这是只是在介绍SpringBoot的使用。
注意:由于我们使用的 Spring Boot 项目,因此需要通过 @Configuration@Bean 注解来添加配置

3. 完整配置类代码:

下边就是完整的配置类,至于为什么比官网上的少一点,因为那个可以说会报错,而且也不需要使用到它,以下就是完整配置类:

package com.hxstrive.mybatis_plus;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MybatisPlusConfig {/*** 分页插件。如果你不配置,分页插件将不生效*/@Beanpublic MybatisPlusInterceptor paginationInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 指定数据库方言为 MYSQLinterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}

注意:如果你没有配置分页插件,则不会进行分页。所以这个一定要配置。

4. 示例代码

  1. 使用 QueryWrapper 和 Page 作为参数进行分页,例如:

    package com.hxstrive.mybatis_plus.select;

    import com.alibaba.fastjson.JSONObject;
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.hxstrive.mybatis_plus.mapper.SimpleMapper;
    import com.hxstrive.mybatis_plus.model.UserBean;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;

    @RunWith(SpringRunner.class)
    @SpringBootTest
    class Select6Test {

    @Autowired
    private SimpleMapper simpleMapper;

    @Test
    void contextLoads() {
    QueryWrapper wrapper = new QueryWrapper<>();
    wrapper.isNotNull(“user_id”);

       // 创建分页对象(1表示第一页;4表示每页大小为4)Page<UserBean> page = new Page<>(1, 4);Page<UserBean> result = simpleMapper.selectPage(page, wrapper);System.out.println("page == result: " + (page == result));System.out.println("size: " + result.getSize());System.out.println("total: " + result.getTotal());for(UserBean userBean : result.getRecords()) {System.out.println(userBean);}
    

    }

    }

运行上面代码,你会发现 page 和selectPage 返回的 result1 相等,说明两者是同一个对象。因此,可以忽略掉 selectPage 方法的返回结果,如下:

Page<UserBean> page = new Page<>(1, 4);
simpleMapper.selectPage(page, wrapper);
  1. 另外一个分页方法,selectMapsPage 和上面的使用方法一样,仅仅是返回类型不一样。代码如下:

    package com.hxstrive.mybatis_plus.select;

    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.hxstrive.mybatis_plus.mapper.SimpleMapper;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import java.util.Map;

    @RunWith(SpringRunner.class)
    @SpringBootTest
    class Select7Test {

    @Autowired
    private SimpleMapper simpleMapper;@Test
    void contextLoads() {// 返回的结果类型为 Map<String,Object>Page<Map<String,Object>> page = new Page<>(1, 4);simpleMapper.selectMapsPage(page, null);System.out.println("size: " + page.getSize());System.out.println("total: " + page.getTotal());System.out.println("pages: " + page.getPages());for(Map<String,Object> map : page.getRecords()) {System.out.println(map);}
    }
    

    }

注意:这里我们平常会使用以下代码获取page里边的存放的代码。
page.getRecords():这是用来获取我们分页查出来的数据

5. 最后总结

这一小结,我们主要是对mybatis-pluts 插件的分页功能的使用,做了简单介绍。下边我们来梳理以下,使用插件步骤:

  1. 在我们项目的配置文件夹下,一定要添加MybatisPlusConfig
  2. 我们需要在这个配置类中添加paginationInterceptor()方法,进行分页功能的配置,其实就是配置分页功能的拦截器
  3. 使用方法,进来数据的分页
  4. 使用方法,返回分页的数据

以上就是我们使用分页的步骤了,这里需要注意一些问题,一定要把相应的注解加上去,要不然,是没办法使用的。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Mybatis-plus的分页查询相关推荐

  1. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

    [一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...

  2. Mybatis+MySQL动态分页查询数据经典案例

    最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...

  3. Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  4. Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)

    最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...

  5. Mybatis Plus实现分页查询

    导入maven依赖 <!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId>&l ...

  6. Mybatis一对多分页查询问题

    一.背景引入 Mybatis提供了处理结果集的标签,其中子标签collection可以处理1对多的映射 <resultMap><collection></collecti ...

  7. Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)

    package cn.bdqn.mhouse.dao;import java.util.List;import cn.bdqn.mhouse.entity.House; import cn.bdqn. ...

  8. 基于Spring+SpringMVC+MyBatis框架的分页查询

    前端点击按钮>>>controller层接受QueryVo和前端带过来的数据>>>调用service层产生PageModel对象>>>servic ...

  9. Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC & ...

  10. mybatis的oracle分页查询,Mybatis查询oracle分页

    开发采用spring+struts+ibatis+extjs,数据库用oracle ibtais配置分页 模糊查询 Java代码 bmzdm LIKE '%$objCondition.bmzdm$%' ...

最新文章

  1. JS正则表达式验证数字
  2. 国际化和判断当前语言环境
  3. 【python图像处理】图像的缩放、旋转与翻转
  4. Bootstrap的引用文件
  5. Hadoop 2.2.0 集群搭建
  6. 【区块链:超级账本】Win10 Hyperledger环境搭建
  7. 对比SQL,学习Pandas操作:group_concat如何实现?
  8. javase基本配置(jdk)
  9. 全方位了解超宽带信号高速采集记录回放系统
  10. 中国石油大学计算机控制实验,《计算机控制》实验讲义.doc
  11. 软件工程第二次课课堂总结
  12. flink其他可选api
  13. html网页设计插件,适用于网页设计的Photoshop插件包
  14. java之调用七牛云接口完成视频加水印
  15. docker的/var/run/docker.sock参数
  16. 工程经济—技术方案经济效果评价
  17. Linux内存访问(Liunx驱动3)
  18. 李小龙传奇一生的资料(多图)
  19. coding之外的3个日常:开会、提问和读书
  20. windows CE 4.2、5.0、6.0下载地址

热门文章

  1. 计算机毕业设计springboot化妆品商城网站
  2. 试题 历届真题 带分数【第四届】【省赛】【A组】
  3. 电脑经常蓝屏是什么原因
  4. 给女友的网页小惊喜--相册万花筒
  5. 大数据培训机构水有多深?
  6. CodeForces 103B Cthulhu
  7. 88 java反射_4 _注解
  8. 汇川plc可以用C语言吗,汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解...
  9. 大数据时代,数据仓库究竟是干嘛的?
  10. 【CS224W】(task1)图机器学习导论