mybatisplus的分页插件以及自定义分页

本文介绍了如何在Spring Boot项目中使用MyBatisPlus的分页插件进行快速配置,并提供了自定义XML方式来编写分页SQL,包括配置步骤、接口实现、SQL编写及测试示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、分页插件

a>添加配置类

 b>测试

2.xml自定义分页

a>UserMapper中定义接口方法

b>UserMapper.xml中编写SQL

c>测试


1、分页插件

MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 。

a>添加配置类

package com.csdn.mybatisplus.onfig;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author summer
 * @date 2022-04-21  15:35
 */
@Configuration
@MapperScan("com.csdn.mybatisplus.mapper")
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor()
    {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor;
    }
}

 b>测试

  @Test
    public void testPage(){
        Integer a=null;
        Page<User> page = new Page<>(2,3);
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.gt(User::getAge,20);

        Page<User> userPage = userMapper.selectPage(page, queryWrapper);
//        当前的集合对象
        List<User> records = userPage.getRecords();
        records.forEach(System.out::println);

//        当前页码
        System.out.println(page.getCurrent());
//        当前的条数
        System.out.println(page.getSize());
//        总条数
        System.out.println(page.getTotal());
//        总页数
        System.out.println(page.getPages());
//        是否有上一页
        System.out.println(page.hasPrevious());
//        是否有下一页
        System.out.println(page.hasNext());

    }


sql语句
SELECT uid AS id,name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (age > ?) LIMIT ?,?

2.xml自定义分页

很多时候我们需要写我们自己的分页查询条件,mp提供的分页有时候是不适用于我们的。

a>UserMapper中定义接口方法

  /*** 根据年龄查询用户列表,分页显示 * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page
     *  即自动分页,必须放在第一位
     *  * @param age 年龄 * @return
     *  */
    IPage<User> getUserByAge(@Param("page") Page<User> page,@Param("age") Integer age);

b>UserMapper.xml中编写SQL

  <select id="getUserByAge" resultType="com.csdn.mybatisplus.bean.User">
        select uid as id, name, age, email,is_deleted as isDeleted
        from t_user
        where age > #{age}
    </select>

c>测试

   @Test
    public void testPage2(){
        Page<User> page = new Page<>(2,5);
        IPage<User> userByAge = userMapper.getUserByAge(page, 50);
        Page<User> pages = (Page<User>) userByAge;
        List<User> records = pages.getRecords();
        records.forEach(System.out::println);
    }

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢编程的夏先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值