SpringBoot+Mybatis-Plus两种分页方法
用到的依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.version}</version>
<exclusions>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</exclusion>
</exclusions>
</dependency>
首先配置mybatis-plus配置
package com.qfclo.login.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
@Configuration
@MapperScan("com.qfclo.login.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptorpaginationInterceptor() {
return new PaginationInterceptor();
}
/**
* 打印 sql
*/
@Bean
public PerformanceInterceptorperformanceInterceptor() {
PerformanceInterceptor performanceInterceptor =new PerformanceInterceptor();
//格式化sql语句
Properties properties =new Properties();
properties.setProperty("format", "faalse");
performanceInterceptor.setProperties(properties);
return performanceInterceptor;
}
}
第一种方式,mybatis-plus原生QueryWrapper方式分页,这种方式比较简单,可以不用修改Mapper,适合简单的增删改查。
@RequestMapping(value = "/orgist1")//,method = RequestMethod.POST)
public Map<String,Object> orglist1()
{
Map<String,Object> map = new HashMap<>();
QueryWrapper<OauthOrganization> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
Page<OauthOrganization> page = new Page<>(1,5); // 查询第1页,每页返回5条
IPage<OauthOrganization> iPage = oauthOrganizationMapper.selectPage(page,queryWrapper);
System.out.println(iPage.getRecords().size());
System.out.println(JSON.toJSONString(iPage));
return map;
}
第二种方式,使用mapper文件的select注解,优点是可以方便的建立查询语句,可以联合多表查询。
Mapper文件
@Select("SELECT * FROM oauth_organization WHERE id < #{m.id} ORDER BY `id` DESC")
List<OauthOrganization> selectpage(Map<String,Object> m, Page<OauthOrganization> page);
Controller文件
@RequestMapping(value = "/orgist4")//,method = RequestMethod.POST)
public Map<String,Object> orglist4()
{
Map<String,Object> map = new HashMap<>();
Map<String,Object> m = new HashMap<>();
m.put("id",5);
Page<OauthOrganization> page = new Page<>(1,5);
page.setRecords(oauthOrganizationMapper.selectpage(m,page));
System.out.println(page.getRecords().size());
System.out.println(JSON.toJSONString(page));
return map;
}
作者:小鱼儿2020
链接:https://www.jianshu.com/p/0a21569f1e06
来源:简书
SpringBoot+Mybatis-Plus两种分页方法的更多相关文章
- PostgreSQL两种分页方法查询时间比较
数据库中存了3000W条数据,两种分页查询测试时间 第一种 SELECT * FROM test_table WHERE i_id> limit 100; Time: 0.016s 第二种 SE ...
- sql server两种分页方法
方法一: --分页方法一 OrderID,CustomerID, EmployeeID,OrderDate,ShippedDate,ShipName,ShipAddress,Freight from ...
- mybatis的两种分页方式:RowBounds和PageHelper
原理:拦截器. 使用方法: RowBounds:在mapper.java中的方法中传入RowBounds对象. RowBounds rowBounds = new RowBounds(offset, ...
- sqlserver两种分页方法比较
-- 3000 page(从1开始) 10 pagesize -- 方法1(效率不高): SELECT TOP 10 * FROM [xxx].[oooo] WHERE id NOT IN (SELE ...
- SQL Server两种分页的存储过程介绍
由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分 ...
- SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)
前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...
- mybatis中两种取值方式?谈谈Spring框架理解?
1.mybatis中两种取值方式? 回答:Mybatis中取值方式有几种?各自区别是什么? Mybatis取值方式就是说在Mapper文件中获取service传过来的值的方法,总共有两种方式,通过 $ ...
- angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用
今天我们要讲的是ng2的路由系统. 例子
- git两种合并方法 比较merge和rebase
18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用m ...
随机推荐
- Hystrix的概念
Netflix的 Hystrix 是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力. Hystrix的设计原则包括:资源隔离.熔断器.命令模 ...
- re(模块正则表达式)
re模块(正则) 正则是用一些具有特殊含义的符号组合到一起(成为正则表达式)来描述字符或者字符串的方法,或者说正则就是用来描述一类事物的规则. import re #从字符串中全部查找内容,返回一 ...
- Python---通配符的使用
苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元 在 Python 中可以使用 print 函数将信息输出到控制台 如果希望输出文字信息的同时,一起输出 数据,就需要使用到 ...
- python保留字及其说明
保留字 说 明 and 用于表达式运算,逻辑与操作 as 用于类型转换 assert 断言,用于判断变量或条件表达式的值是否为真 break 中断循环语句的执行 class 用于定义类 con ...
- JS执行顺序问题
JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的.而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行.函数定义执行完后,才会按顺序执行其他代码. 先看看 ...
- spring-boot-plus集成Shiro+JWT权限管理
SpringBoot+Shiro+JWT权限管理 Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以 ...
- CORE EF生成ORACLE数据库模型报错问题记录
需求:最近在新开发一套在LINUX运行的API接口,需要用到net core api框架以及oracle数据库,首先需要解决的就是连接数据库问题,由于是DBFirst 加上之前很多老表不规范,导致了c ...
- ubuntu安装svn
安装svn # sudo apt-get install subversion 创建svn仓库 # cd /root # mkdir svn # cd svn # svnadmin create re ...
- Qt 中配置 c99的问题
Qt 5.3 版本 报错原因是c99标准问题的话,可以尝试下面方法 打开项目中xxx.pro工程文件 加入如下语句: QMAKE_CFLAGS += -std=c99
- 第一章 Django之MVC模式(2)
让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过 Web 框架来实现的功能与之前的方式有何不同.下面就是通过使用 Django 来完成以上功能的例子: # models.py (the da ...