springboot整合mybatis-plus 实现分页查询功能

建一个config类

@Configuration
public class MybatisPlusConfig {

  @Bean
  public PaginationInterceptor paginationInterceptor(){
    return new PaginationInterceptor();
  }
}

编写controller

 post /article/search/{page}/{size}
@PostMapping("search/{page}/{size}")
  public Result findByPage(@PathVariable Integer page,
               @PathVariable Integer size,
              @RequestBody Map<String,Object> map){

    //根据条件分页查询
    Page<Article> pageDate = articleService.findByPage(map,page,size);
    //封装分页返回对象
    PageResult<Article> pageResult =new PageResult<>(
        pageDate.getTotal(),pageDate.getRecords()
    );

    return new Result(true,StatusCode.OK,"查询分页成功",pageResult);
  }

编写service

public Page<Article> findByPage(Map<String, Object> map, Integer page, Integer size) {
    //设置查询条件
    EntityWrapper<Article> wrapper =new EntityWrapper<>();
    Set<String> keySet = map.keySet();
    for (String key : keySet) {
//      if (map.get(key) !=null){
//        wrapper.eq(key,map.get(key));
//      }
      wrapper.eq(map.get(key) !=null,key,map.get(key));
    }
    //设置分页参数
    Page<Article> pageData =new Page<>(page,size);

    //第一个是分页参数,第二个是查询条件
    List<Article> list = articleDao.selectPage(pageData, wrapper);

    pageData.setRecords(list);

    return pageData;
  }

整合完成!!!

到此这篇关于springboot整合mybatis-plus 实现分页查询功能的文章就介绍到这了,更多相关mybatis-plus 分页查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-09-08

SpringBoot整合MyBatis-Plus3.1教程详解

一.说明 Mybatis-Plus是一个Mybatis框架的增强插件,根据官方描述,MP只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑.并且只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间.代码生成,分页,性能分析等功能一应俱全,最新已经更新到了3.1.1版本了,3.X系列支持lambda语法,让我在写条件构造的时候少了很多的"魔法值",从代码结构上更简洁了. 二.项目环境 MyBatis-Plus版本: 3.1.0 SpringBoot版本:2.1.5 JDK

springboot2.3 整合mybatis-plus 高级功能

-学习并使用mybatis-plus的一些高级功能的用法例如: AR模式. 乐观锁 .逻辑删除 .自动填充.数据保护等功能 为了方便演示,咱们还是新建一个全新的项目 引入mp依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> &l

springboot快速集成mybatis-plus的详细教程

简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网.那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA. springBoot快速集成mybatis-plus 一.pom文件引入mybatis-plus依赖 <dependenc

springboot2.3 整合mybatis-plus 高级功能及用法详解

-学习并使用mybatis-plus的一些高级功能的用法例如: AR模式. 乐观锁 .逻辑删除 .自动填充.数据保护等功能 为了方便演示,咱们还是新建一个全新的项目 引入mp依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> &l

springboot集成mybatis-plus遇到的问题及解决方法

在使用spring boot集成mybatis-plus的过程中遇到的问题 如图, 首先我放xml的包的是没问题的,而是引入的架包和配置问题,问题配置如下 解决方法:请将mybatis-plus改成mybatis,mybatis,mybtis,重要的说三遍,必要的架包如下 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring- boot-start

MyBatis-Plus 分页查询以及自定义sql分页的实现

一.引言 分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页. 物理分页:相当于执行了limit分页语句,返回部分数据.物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景. 逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据.如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合. 那么MP中的物理分页怎么实现

mysql oracle和sqlserver分页查询实例解析

最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一).mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: selecto.*from(sql)o limit firstIndex,pageSize 如下面的截图,每页显示的记录数为20: 查询(1-20)这20条记录 查询(21-40)这20条记录 mysql的分页查询就这么简单...... (二).sqls

MVC+EasyUI+三层新闻网站建立 分页查询数据功能(七)

MVC新闻网站建立,完成分页查询数据功能. 1.在Model里面建立NewInfo(里面存放的是新闻信息的实体信息) 然后在DAL层中建立NewInfoDal (里面存放对新闻信息的操作) 写入分页查询的代码 /// <summary> /// 分页查询 /// </summary> /// <param name="start">分页开始条数</param> /// <param name="end">分

数据库分页查询方法

可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.

ASP.NET MVC5 实现分页查询的示例代码

对于大量数据的查询和展示使用分页是一种不错的选择,这篇文章简要介绍下自己实现分页查询的思路. 分页需要三个变量:数据总量.每页显示的数据条数.当前页码. //数据总量 int dataCount; //每页显示的数据条数 int pageDataCount; int pageNumber; 根据数据总量和每页显示的数据条数计算出总页数,根据当前页码和每页显示的数据条数计算出从数据库中读取数据的起始行号和结束行号. //总页数 int pageCount = (int)Math.Ceiling(d

MyBatis Plus 实现多表分页查询功能的示例代码

在Mybatis Plus 中,虽然IService 接口帮我们定义了很多常用的方法,但这些都是 T 对象有用,如果涉及到 多表的查询,还是需要自定义Vo 对象和自己编写sql 语句,Mybatis Plus提供了一个Page 对象,查询是需要设置其中的 size 字段 和 current 字段的值 一.分页配置 可以直接使用selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,而是通过缓存来获得全部数据中再进行的分页,这样对于大数据

Mybatis实现增删改查及分页查询的方法

MyBatis的前身就是iBatis.是一个数据持久层(ORM)框架. MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持 久层框架.MyBatis消除了几乎所有的JDBC 代码和参数的手工 设置以及结果集的检索.MyBatis使用简单的XML或注解用于 配置和原始映射,将接口和Java 的POJOs(Plan Old Java Objects,普通的Java 对象)映射成数据库中的记录.每个 MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个 SqlS

Oracle使用MyBatis中RowBounds实现分页查询功能

Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行分页查询时,不需要在 sql 语句中写 offset,limit,mybatis 会自动拼接 分页sql ,添加 offset,limit,实现自动分页. 需要前台传递参数currentPage和pageSize两个参数,分别是当前页和每页数量,controller层把参数传递给service层即可

Oracle实现分页查询的SQL语法汇总

本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下: 1.无ORDER BY排序的写法.(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: SELECT * FROM (Select ROWNUM AS ROWNO, T.* from k_task T where Flight_date between to_date('20060501', 'yyyymmdd') and to_d

防SQL注入 生成参数化的通用分页查询语句

使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号"'"转换成两个单引号"''",但这种做法是不安全的,厉害的黑客可以通过编码的方式绕过单引号的过滤,要想有效防SQL注入,只有参数化查询才是最终的解决方案.但问题就出在这种通用分页存储过程是在存储过程内部进行SQL语句拼接,根本无法修改为参数化的查询语句,因此这种通用分页存储过程是不可取的.但是如果不用通用的分页存储过程,则意味着必须为每个具体的分页查询写一个分页存储过程