在使用分页查询时,我们可以直接使用mybatisPlus提供的分页查询插件,
@MapperScan("com.plus.mybatis.mapper")
@EnableTransactionManagement
@Configuration
public class MyBatisPlusConfig {
@Bean//注册乐观锁插件
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
@Bean //分页查询插件
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
Service层>
List<User> pagelist(int current,int size);
ServiceImpl层代码
@Override
public List<User> pagelist(int current, int size) {
// Step1:创建一个 Page 对象 从0条开始 每页显示5条
Page<User> page = new Page<>(current,size);
// Page<User> page = new Page<>(2, 5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// Step2:调用 mybatis-plus 提供的分页查询方法 .getRecords取出集合数据 不取的话会返回一些其它值
List<User> userTestList = userMapper.selectPage(page, null).getRecords();
// Step3:获取分页数据
System.out.println(page.getCurrent()); // 获取当前页
System.out.println(page.getTotal()); // 获取总记录数
System.out.println(page.getSize()); // 获取每页的条数 默认10
System.out.println(page.getRecords()); // 获取每页数据的集合
System.out.println(page.getPages()); // 获取总页数
System.out.println(page.hasNext()); // 是否存在下一页
System.out.println(page.hasPrevious()); // 是否存在上一页
return userTestList;
}
编写测试
@Test
public void testlist(){
List<User> pagelist = userService.pagelist(0,5); //从0开始,每一页五条
pagelist.forEach(System.out::println);
}