####分页插件

问题:如何在MybatisPlus中使用分页插件?

​ –解答:这也是MybatisPlus相较于Mybatis功能更加强大的一个方面,在MybatisPlus中封装了分页功能,使用户可以更加方便的使用分页操作。具体使用方法为:

  1. 创建分页配置类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.deng.config;

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;

@Configuration
@MapperScan("com.deng.dao.mapper")
public class MybatisPlusPageConfig {
//MybatisPlusInterceptor是MybatisPlus中提供的一个拦截器
@Bean
public MybatisPlusInterceptor mybatisPlusPage(){
MybatisPlusInterceptor pageConfig = new MybatisPlusInterceptor();
pageConfig.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return pageConfig;
}
}
  1. 使用分页功能
1
2
3
4
5
6
7
@Test
public void testPage(){
//Page类是MybatisPlus中用于分页功能的类
Page<User> userPage = new Page<User>(1,1L);
Page<User> page = userMapper.selectPage(userPage, null);
System.out.println(page);
}

底层执行的SQL

1
2
==>  Preparing: SELECT id,name,age,email FROM t_user LIMIT ?
==> Parameters: 1(Long)

page类中一些常用的方法,也是在开发分页功能经常用到的方法

1
2
3
4
5
6
7
page.getCurrent();//返回值为long类型,表示当前所在页面
page.getPages();//返回值为long类型,表示总页数
page.getTotal();//返回值为long类型,表示总记录数 = pages * size
page.getSize();//返回值为long类型,表示页面大小
page.getRecords();//返回值为List<>类型,表示页面中的记录
page.hasNext();//返回值为boolean类型,表示该页是否有下一页
page.hasPrevious();//返回值为boolean类型,表示该页是否有上一页

​ 在MybatisPlus中还提供了乐观锁插件、代码生成器、多数据源配置以及MybatisX插件(IDEA中的插件)等功能,具体使用可以参考MybatisPlus官网。这些功能可以让我们更便捷、更迅速的操作数据库中的表。

MybatisPlus