首页 » PHP教程 » phpsybase分页技巧_SpringBoot整合MybatisPlus实现分页查询

phpsybase分页技巧_SpringBoot整合MybatisPlus实现分页查询

访客 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

分页查询是持久化框架的根本功能,Mybatis 本身也供应了分页查询,但是 Mybatis 供应的是逻辑分页,也便是先查出所有,然后在内存中进行分布,这明显不符合生产须要。
以是利用 Mybatis 时常日须要自行实现拦截器,或者利用 PageHelper 之类的框架实现物理分页。

MybatisPlua 作为 Mybatis 的 Plus 版本,当然供应了物理分页功能。

phpsybase分页技巧_SpringBoot整合MybatisPlus实现分页查询

准备事情

利用 MySql 数据库,设计一张 user 表,构造如下

phpsybase分页技巧_SpringBoot整合MybatisPlus实现分页查询
(图片来自网络侵删)

id

name

age

email

1

Jone

18

Jone@baomidou.com

2

Jack

20

Jack@baomidou.com

3

Tom

28

Tom@baomidou.com

4

Sandy

21

Sandy@baomidou.com

5

Billie

24

Billie@baomidou.com

数据库脚本

CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键', name VARCHAR(32) NOT NULL COMMENT '姓名', age SMALLINT(4) NOT NULL DEFAULT '0' COMMENT '年事', email VARCHAR(50) NOT NULL DEFAULT '' COMMENT '邮箱', PRIMARY KEY (id))

数据脚本

INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'Jone@baomidou.com'),(2, 'Jack', 20, 'Jack@baomidou.com'),(3, 'Tom', 28, 'Tom@baomidou.com'),(4, 'Sandy', 21, 'Sandy@baomidou.com'),(5, 'Billie', 24, 'Billie@baomidou.com');

整合 MybatisPlus 实现分页查询

MybatisPlus 供应了分页插件,只须要声明一下就可以实现物理分页

@Configurationpublic class GetanJdbcAutoConfiguration { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); paginationInterceptor.setDbType(DbType.MYSQL); MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(paginationInterceptor); return interceptor; }}

分页插件有四个属性:

属性名

类型

默认值

描述

overflow

boolean

false

溢出总页数后是否进行处理(默认不处理)

maxLimit

Long

单页分页条数限定(默认无限制)

dbType

DbType

数据库类型(根据类型获取应利用的分页方言)

dialect

IDialect

方言实现类

支持的数据库

mysql、oracle、db2、h2、hsql、sqlite、postgresql、sqlserver、Phoenix、Gauss、clickhouse、Sybase、OceanBase、Firebird、cubrid、goldilocks、csiidb

测试

编写测试用例

@RunWith(SpringRunner.class)@SpringBootTest(classes = Application.class)public class MybatisPlusTest { @Autowired private UserMapper userMapper; @Test public void testPagination() { // 查询第 2 页,每页 3 条记录 Page<User> page = new Page<>(2, 3); page = userRepository.selectPage(page, null); }}

查看日志,可以看到实行了以下两个语句

SELECT COUNT() AS total FROM userSELECT id,name,age,email FROM user LIMIT ?,?

如果只想查询列表,不须要统计总条数,可以利用 Page 布局方法的第三个参数进行设置

Page<User> page = new Page<>(2, 3, false);总结

Page 是 MybatisPlus 默认实现的分页类,也可以自己实现分页类,只须要实现 IPage 接口就可以利用分页的功能。

末了关注一下,共同学习!

标签:

相关文章