MyBatisPlus提供的分页功能

会当凌绝顶,一览众山小

| @Author:TTODS

MyBatisPlus框架系列文章目录:

前言

本文介绍了如何使用MybatisPlus提供的分页功能

编写配置类,启动分页插件

在使用分页功能前,需要编写MybatisPlus的配置类,来启用分页插件

package com.example.config;

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 {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}
测试BaseMapper提供的selectPage方法
    @Test
    public void testSelectPage(){
        Page<User> page1 = new Page<>(1, 3);
        // 第二个参数Wrapper为null,表示没有where子句,即查询表中所有的记录
        Page<User> userPage1 = userMapper.selectPage(page1, null);
        userPage1.getRecords().forEach(System.out::println);

        Page<User> page2 = new Page<>(2, 3);
        Page<User> userPage2 = userMapper.selectPage(page2, null);
        userPage2.getRecords().forEach(System.out::println);
    }

生成的sql语句及输出

==>  Preparing: SELECT COUNT(1) FROM user
==> Parameters: 
<==      Total: 1
==>  Preparing: SELECT id,name,age,gender,email FROM user LIMIT ?
==> Parameters: 3(Long)
<==      Total: 3
User(id=1, name=Alice, age=17, gender=0, email=alice@gmail.com)
User(id=2, name=Bob, age=19, gender=1, email=bob@gmail.com)
User(id=3, name=Colin, age=13, gender=1, email=colin@gmail.com)
==>  Preparing: SELECT COUNT(1) FROM user
==> Parameters: 
<==      Total: 1
==>  Preparing: SELECT id,name,age,gender,email FROM user LIMIT ?,?
==> Parameters: 3(Long), 3(Long)
<==      Total: 3
User(id=4, name=David, age=26, gender=1, email=david@gmail.com)
User(id=5, name=Ellie , age=9, gender=0, email=ellie@gmail.com)
User(id=6, name=Frank, age=36, gender=1, email=frank@gmail.com)
测试IService接口中提供的page方法

其实Service层中的page方法与Mapper层的selectPage方法是类似的。

@Test
public void testPage(){
    Page<User> page1 = new Page<>(1, 3);
    // 查询年龄小于20的用户
    page1 = userService.page(page1,new QueryWrapper<User>().lt("age",20));
    page1.getRecords().forEach(System.out::println);
}

生成的sql语句及输出:

==>  Preparing: SELECT COUNT(1) FROM user WHERE (age < ?)
==> Parameters: 20(Integer)
<==      Total: 1
==>  Preparing: SELECT id,name,age,gender,email FROM user WHERE (age < ?) LIMIT ?
==> Parameters: 20(Integer), 3(Long)
<==      Total: 3
User(id=1, name=Alice, age=17, gender=0, email=alice@gmail.com)
User(id=2, name=Bob, age=19, gender=1, email=bob@gmail.com)
User(id=3, name=Colin, age=13, gender=1, email=colin@gmail.com)

上一篇:MyBatisPlus Service层的CRUD
下一篇:MyBatisPlus之字段填充

- THE END -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值