MyBatis-Plus分页插件的使用
从
MyBatis-Plus 3.4.0
开始,不再使用旧版本的PaginationInterceptor
,而是使用MybatisPlusInterceptor
。
下面是MyBatis-Plus 3.4.3.3
新版分页的使用方法。
配置
使用分页插件需要配置MybatisPlusInterceptor
,将分页拦截器添加进来:
@Configuration
public class MyBatisPlusConfig {/*** 分页插件配置** @return*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 向MyBatis-Plus的过滤器链中添加分页拦截器,需要设置数据库类型(主要用于分页方言)interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
使用分页功能
和分页功能有关的类是Page<T>
类,构造分页参数的方法:
Page<UserEntity> page = new Page<>(1, 1);
- 第一个参数是页码(从
1
开始),第二个参数是分页大小。
使用的时候只需要将创建的
Page
对象作为第一个参数传入即可。
首先,定义接口:
@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {/*** 测试分页插件** @param page* @return*/Page<UserEntity> testPage(Page<UserEntity> page);
}
然后,编写SQL
:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tao.adminserver.mapper.UserMapper"><!-- 配置数据库字段和Java类中字段的映射关系 --><resultMap id="baseResultMap" type="com.tao.adminserver.entity.UserEntity"><id column="id" property="id" jdbcType="BIGINT" javaType="java.lang.Long"/><result column="name" property="name" jdbcType="VARCHAR" javaType="java.lang.String"/><result column="age" property="age" jdbcType="INTEGER" javaType="java.lang.Integer"/><result column="email" property="email" jdbcType="VARCHAR" javaType="java.lang.String"/></resultMap><!-- 测试分页插件 --><select id="testPage" resultMap="baseResultMap">select * from tb_user</select></mapper>
SQL
中不需要用limit
来手动分页,分页插件会自己加上的。
最后,来测试一下:
@Testpublic void testPage() {// 分页查第一页Page<UserEntity> page = new Page<>(1, 2);Page<UserEntity> pageResult = userMapper.testPage(page);System.out.println(JSON.toJSONString(pageResult));// 分页查第二页page = new Page<>(2, 2);pageResult = userMapper.testPage(page);System.out.println(JSON.toJSONString(pageResult));}
注意:参数和结果都是用
Page
对象来包装。
控制台打印的日志:
==> Preparing: SELECT COUNT(*) FROM tb_user
==> Parameters:
<== Columns: COUNT(*)
<== Row: 3
<== Total: 1
==> Preparing: select * from tb_user LIMIT ?
==> Parameters: 2(Long)
<== Columns: id, name, age, email
<== Row: 7, Mike, 40, test7@baomidou.com
<== Row: 8, Tank, 40, test8@baomidou.com
<== Total: 2......==> Preparing: SELECT COUNT(*) FROM tb_user
==> Parameters:
<== Columns: COUNT(*)
<== Row: 3
<== Total: 1
==> Preparing: select * from tb_user LIMIT ?,?
==> Parameters: 2(Long), 2(Long)
<== Columns: id, name, age, email
<== Row: 9, Adele, 22, test9@baomidou.com
<== Total: 1
可以看出,分页之后,首先count
计算了总数,然后在查询的时候自动加上了limit
语句。
分页结果对象如下:
{"current": 1, // 当前是第几页"optimizeCountSql": true,"orders": [],"pages": 2, // 总共有几页"records": [ // 当前页的记录详细信息{"age": 40,"email": "test7@baomidou.com","id": 7,"name": "Mike"},{"age": 40,"email": "test8@baomidou.com","id": 8,"name": "Tank"}],"searchCount": true,"size": 2, // 当前页的数据量(分页大小)"total": 3 // 数据总量
}
MyBatis-Plus分页插件的使用相关推荐
- SpringBoot集成MyBatis的分页插件PageHelper
[写在前面] 项目的后台管理系统需要展示所有资源信息,select * 虽然方便但数据量过于庞大会严重降低查找效率,页面加载慢,用户体验差.分页自然是必要选择,但原生的方法过于繁杂.MyBatis的分 ...
- Spring Boot2.0 整合mybatis、分页插件、druid
2019独角兽企业重金招聘Python工程师标准>>> 前言 本文主要是针对SpringBoot2.0.2版本,实现整合mybatis.分页插件.druid等组件,实现完整的web服 ...
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
俗话说:好?不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心 ...
- 使用mybatis框架分页插件报错### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;
报错信息如下: ### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the ...
- Java 逻辑分页 和 物理分页(mybatis的分页插件PageHelper)
目录 1 逻辑分页和物理分页的区别 2 项目框架展示 2.1 相关技术 2.2 相关依赖和配置 2.2.1 pom依赖 2.2.2 yml配置 2.3 实体类 3 逻辑分页 3.1 Sevice层 3 ...
- PageHelper——一款Mybatis的分页插件
PageHelper是mybatis一个分页插件,原理就是基于mybatis拦截器,可以用它完成分页 MyBatis提供了拦截器接口,我们可以实现自己的拦截器, 将其作为一个plugin装入到SqlS ...
- Mybatis之分页插件
在前后端进行交互的时候,很多管理系统都需要进行分页显示,mybatis的分页插件可以帮助我们更快捷地将数据进行分页 一.分页插件介绍 分页可以将很多条结果进行分页显示. 如果当前在第一页,则没有上一页 ...
- MyBatis Plus分页插件常用配置
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 配置详情 MyBatis Plus分页插件常用配置如下: import com.baomido ...
- java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...
- MyBatis Generator分页插件RowBoundsPlugin坑
一.Mybatis Generator设置分页 Mybatis Generator没有设置分页,但自带了个RowBoundsPlugin分页插件,故而配置 <plugin type=" ...
最新文章
- 第六章练习题和知识面扩充
- 整型数与字符串之间的转化
- boost::hana::id用法的测试程序
- 如何高效排查系统故障?一分钱引发的系统设计“踩坑”案例
- 话里话外:企业管理软件的方案设计要规避哪些风险
- oracle 取时间比较,Oracle最大日期获取方法
- 使用iScroll时,input等不能输入内容的解决方法
- .NET C#获取当前网页地址信息
- direct3D 状态设置
- FFMPEG类库打开流媒体的方法(需要传参数的时候)
- 记录QT在实时显示摄像头数据时候切换TAB页出现异常
- spring mvc路径匹配原则
- SpringBoot使用RestTemplate 摘要认证
- 返回固定页面的http服务器
- 未雨绸缪,数据保护之NBU介质备份
- Cpp--string常用函数用法总结
- 8个免费恶搞照片在线生成网站
- 可汗学院公开课——统计学学习:35-46
- luatos的一些说明
- SSD:单目多目标检测器