MybatisPlus-插件功能-分页插件基本用法
mp的插件其实是基于一个拦截器去做的,它会拦截你的业务SQL语句的执行,然后去实现各种各样的一些拓展的功能。
MybatisPlusInterceptor这个bean并不是我们最终的我们想要使用的各种各样的插件,它是一个总的拦截器,在它的内部可以去添加各种插件。它里面有一个方法叫addInnerInterceptor就是添加内置拦截器,也就是mp内置的插件(默认情况下是没有的,需要你一个一个去添加)。
PaginationInnerInterceptor一个分页的内置拦截器也就是分页插件,在new的时候需要指定选择访问的一个数据库的类型,以及一些分页的参数。配置分页查询的上限,也就是说在做数据查询的时候做了一个限制,最多查询1000条,这样的话可以可以避免因为一次网络传输查询过多数据,对于服务器也好,避免数据库压力过大。
最后把创建好的pageInterceptor添加到核心拦截器里面去,整个对象初始化完成。
第一步,配置插件,配了插件以后插件才会生效。
第二步,使用分页的API,完成分页。
MybatisPlusInterceptor本身没有功能只起到拦截作用,真正的功能需要我们往里面去加。
@Test
void testPageQuery(){
int pageNo = 1,pageSize = 2;//pageNo 页码 pageSize 每页大小
//1.准备分页条件
//1.1.分页条件
Page<User> page = Page.of(pageNo, pageSize);
//1.2.排序条件
page.addOrder(new OrderItem("balance",true));
page.addOrder(new OrderItem("id",true));
//2.分页查询
Page<User> p = userService.page(page);
//3.解析
//总条数
long total = p.getTotal();
System.out.println("total = " + total);
//总页数
long pages = p.getPages();
System.out.println("pages = " + pages);
//分页的数据
List<User> users = p.getRecords();
users.forEach(System.out::println);
}