Mybatis-plus的分页查询
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. 示例代码
使用 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);
另外一个分页方法,
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 插件的分页功能的使用,做了简单介绍。下边我们来梳理以下,使用插件步骤:
- 在我们项目的配置文件夹下,一定要添加
MybatisPlusConfig
- 我们需要在这个配置类中添加
paginationInterceptor()
方法,进行分页功能的配置,其实就是配置分页功能的拦截器 - 使用方法,进来数据的分页
- 使用方法,返回分页的数据
以上就是我们使用分页的步骤了,这里需要注意一些问题,一定要把相应的注解给加上去,要不然,是没办法使用的。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
Mybatis-plus的分页查询相关推荐
- Mybatis最入门---分页查询(逻辑分页与SQL语句分页)
[一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...
- Mybatis+MySQL动态分页查询数据经典案例
最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...
- Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...
- Mybatis Plus实现分页查询
导入maven依赖 <!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId>&l ...
- Mybatis一对多分页查询问题
一.背景引入 Mybatis提供了处理结果集的标签,其中子标签collection可以处理1对多的映射 <resultMap><collection></collecti ...
- Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
package cn.bdqn.mhouse.dao;import java.util.List;import cn.bdqn.mhouse.entity.House; import cn.bdqn. ...
- 基于Spring+SpringMVC+MyBatis框架的分页查询
前端点击按钮>>>controller层接受QueryVo和前端带过来的数据>>>调用service层产生PageModel对象>>>servic ...
- Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC & ...
- mybatis的oracle分页查询,Mybatis查询oracle分页
开发采用spring+struts+ibatis+extjs,数据库用oracle ibtais配置分页 模糊查询 Java代码 bmzdm LIKE '%$objCondition.bmzdm$%' ...
最新文章
- JS正则表达式验证数字
- 国际化和判断当前语言环境
- 【python图像处理】图像的缩放、旋转与翻转
- Bootstrap的引用文件
- Hadoop 2.2.0 集群搭建
- 【区块链:超级账本】Win10 Hyperledger环境搭建
- 对比SQL,学习Pandas操作:group_concat如何实现?
- javase基本配置(jdk)
- 全方位了解超宽带信号高速采集记录回放系统
- 中国石油大学计算机控制实验,《计算机控制》实验讲义.doc
- 软件工程第二次课课堂总结
- flink其他可选api
- html网页设计插件,适用于网页设计的Photoshop插件包
- java之调用七牛云接口完成视频加水印
- docker的/var/run/docker.sock参数
- 工程经济—技术方案经济效果评价
- Linux内存访问(Liunx驱动3)
- 李小龙传奇一生的资料(多图)
- coding之外的3个日常:开会、提问和读书
- windows CE 4.2、5.0、6.0下载地址