MyBatisPlus分页插件

概要

提示:SpringBoot框架中添加MyBatisPlus分页插件

Maven依赖引入

 <!-- mybatis plus 管理 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>

MybatisPlus依赖在3.5.9及以上的注意了
JDK8或者以下

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
</dependency>

JDK11+

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-jsqlparser</artifactId>
</dependency>

在配置类中注册MyBatisPlus的核心插件,同时添加分页插件

@Configuration
//只有在类路径中存在 MybatisPlusInterceptor 和 BaseMapper 类时,当前配置类才会生效。
@ConditionalOnClass({MybatisPlusInterceptor.class, BaseMapper.class})
public class MyBatisConfig {
    @Bean
    //确保 mybatisPlusInterceptor 方法仅在没有其他 MybatisPlusInterceptor Bean 的情况下执行。
    @ConditionalOnMissingBean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //1.初始化核心插件
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //2.添加分页插件
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        //设置分页上限
        paginationInnerInterceptor.setMaxLimit(1000L);
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }
}

使用分页的API测试案例

@Test
void testPageQuery() {
	//1.查询
	int pageNo = 1, pageSize = 5:
	//1.1.分页参数
	Page<User> page = Page.of(pageNo,pageSize);
	//1.2.排序参数	
	page.addOrder(new OrderItem("balance",false));
	//1.3分页查询
	Page<User> p = userService.page(page);
	//2.总条数
	System.out.println("total = " + p.getTotal());
	//3.总页数
	System.out.println("pages = "+ p.getPages());
	//4.分页数据
	List<User> records = p.getRecords();
	records.forEach(System.out::println);
}

MyBatisPlus中的lambdaQuery使用分页查询案例

       // 分页查询
        Page<Item> result = itemService.lambdaQuery()
                .like(StrUtil.isNotBlank(query.getKey()), Item::getName, query.getKey())
                .eq(StrUtil.isNotBlank(query.getBrand()), Item::getBrand, query.getBrand())
                .eq(StrUtil.isNotBlank(query.getCategory()), Item::getCategory, query.getCategory())
                .eq(Item::getStatus, 1)
                .between(query.getMaxPrice() != null, Item::getPrice, query.getMinPrice(), query.getMaxPrice())
                .page(query.toMpPage("update_time", false));//.page使用分页查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值