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 ...
随机推荐
- C++ Primer练习题day2
/* 1.7略 1.8 /* 指出不合法的语句: std::cout<<"/"; std::cout<<"*/ "; std::cout ...
- mysql innodb数据库损坏导致无法启动
生产环境中的mysql突然启动不了,查了原因是innodb库错误,以前就遇到过这个问题,稀里糊涂的没解决,结果导致大量数据丢失.这些又遇到这个问题,果断把那个有问题的数据库移动了别的地方,启动了mys ...
- 核发电站 (dp前缀优化)
大意: $n$个城市, $m$种核电站, 第$i$种假设要建在第$x$个城市, 必须满足$[x-i,x+i]$范围内无其他核电站, 求建核电站的方案数. 简单$dp$题, 设$dp[i][j]$为位置 ...
- 排序之希尔排序(JS)
希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该 ...
- HTTP协议探究(序章)
1 HTTP协议基于TCP协议 (1)TCP三次握手连接 HTTP客户端(Chrome浏览器): IP:192.168.1.47 端口:59875 MSS:1460 HTTP服务器(Nginx服务器) ...
- Git详细操作
Git详细操作 一.本地配置 1公钥钥配置 1.参考帮助文档:https://gitee.com/help/ 仓库管理 =公钥管理 =生成/添加SSH公钥 ssh-keygen -t rsa -C & ...
- luogu题解 P4092 【[HEOI2016/TJOI2016]树】树链剖分
题目链接: https://www.luogu.org/problemnew/show/P4092 瞎扯--\(O(Q \log^3 N)\)解法 这道先yy出了一个\(O(Q \log^3 N)\) ...
- Swagger学习(三、配置扫描接口)
生产环境中使用,发布的时候不能使用
- luogu P3773 [CTSC2017]吉夫特
luogu 这里的组合数显然要用\(\text{lucas}\)定理来求,所以考虑\(\text{lucas}\)定理的本质,即把\(n,m\)分别拆分成\(p\)进制串\(\{a\}\{b\}\), ...
- 日志(logging)与正则(re)模块
logging模块 #日志:日常的流水 =>日志文件,将程序运行过程中的状态或数据进行记录,一般都是记录到日志文件中 #1.logging模块一共分为五个打印级别 debug.info.warn ...