在mybatis-plus中实现分页功能

首先我们的分页是基于Interceptor的

所以我们的就得在我们的interceptor加上我们的PaginationInnerInterceptor对象:
代码实现:

@MapperScan("com.atguigu.mybatisplus.mapper")
@Configuration
public class mybatisConfig {

    @Bean
    public MybatisPlusInterceptor MPI(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

        return mybatisPlusInterceptor;

    }

}

②、我们实现分页功能。使用的是继承于BaseMapper接口的UserMapper接口的selectPage方法。调用该方法我们必须传入两个参数:
1、第一个是Ipage接口的实现类。根据继承关系我们可以知道:
在这里插入图片描述

其Page就是一个Ipage实现类.

2、第二个参数就是包装类Wrapper,可以传入null
代码实现:

@Autowired
    UserMapper userMapper;

    @DisplayName("pageTest")
    @Test
    public void test01(){
        Page<User> page = new Page<>(1,3);
//新建一个Page对象,泛型为我们操作的类。User1表示的是当前页码,3则是pageSize 
        Page<User> userPage1 = userMapper.selectPage(page, null);
  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());


//        System.out.println(userPage1);

    }

二、自定义分页功能:
首先我们需要在我们的UserMapper中定义我们的我们抽象方法,
该方法返回Page对象:


Page<User> definePageVo(@Param("page") Page<User> page,@Param("age") int age))

然后在我们userMapper.xml中配置我们自定义的的方法:

<select id="selectPageVo" resultType="com.atguigu.mybatisplus.bean.User">
    SELECT id,name,age,email from user where age >#{age}
</select>

测试:

@Test
    public void test02(){

//        注入我们的参数
        Page<User> userPage = new Page<>(2, 3);
        userMapper.selectPageVo(userPage, 23);

//       获取结果:

        System.out.println(userPage.getCurrent());


    }

即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值