<强>一、引言强>
分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页。
物理分页:相当于执行了极限分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景。
逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据。如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合。
那么议员中的物理分页怎么实现呢?往下看往下看
<强>二,配置强>
创建MybatisPlusConfig配置类,需要配置分页插件,小编使用的弹簧引导配置方式。
/* * ,* @Auther:,这贱男 ,* @Date: 2019/6/12 15:06 ,* @Description: MybatisPlus配置类 ,*/@ configuration public class  MyBatisPlusConfig { ,/* * ,,*,分页插件 ,,* @return ,,*/,@ bean public 才能;PaginationInterceptor  paginationInterceptor (), { ,,,return new PaginationInterceptor (); ,,} }
<强>三,具体分页实现强>
议员的包装器提供了两种分页查询的方式,源码如下:
,/* * ,,*,根据,entity 条件,查询全部记录(并翻页) ,,* ,,*,@param page ,,,,分页查询条件(可以为,RowBounds.DEFAULT) ,,*,@param queryWrapper 实体对象封装操作类(可以为,null) ,,*/IPage<才能;T>, selectPage (IPage, queryWrapper); ,/* * ,,*,根据,Wrapper 条件,查询全部记录(并翻页) ,,* ,,*,@param page ,,,,分页查询条件 ,,*,@param queryWrapper 实体对象封装操作类 ,,*/IPage<才能;Map<字符串,Object>祝辞,selectMapsPage (IPage , queryWrapper);
可见两个分页方法参数都是一致的,只是返回参数略有不同,具体选择根据实际业务为准。
,/* * ,,*,分页查询 ,,*/@Test才能 public 才能;void  selectByPage (), { ,,,QueryWrapper, wrapper =, new QueryWrapper (); ,,,wrapper.like (“name",,“雨”)使(“age",, 40); ,,,Page , page =, new Page<祝辞(1、2); ,,,//IPage , userIPage =, userMapper.selectPage(页面,,包装); ,,,IPage