小书MybatisPlus第4篇-表格分页与下拉分页查询

栏目: IT技术 · 发布时间: 4年前

内容简介:本文为mybatis系列文档的第4篇,前三篇请访问下面的网址。在已经集成了Mybatis Plus的Spring项目中加入如下分页拦截器的配置,让MybatisPlus支持分页查询输出结果如下:

本文为mybatis系列文档的第4篇,前三篇请访问下面的网址。

一、让Spring Boot-MybatisPlus支持分页

在已经集成了Mybatis Plus的Spring项目中加入如下分页拦截器的配置,让MybatisPlus支持分页

@Configuration
public class MybatisPlusConfiguration {
    //配置分页拦截器
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

二、单表查询分页-表格分页

@Test
public void testSelect() {
  LambdaQueryWrapper<User> query = new LambdaQueryWrapper<>();
  query.ge(User::getAge,10)      //查询条件:年龄大于10
       .orderByDesc(User::getAge);   //按照年龄的倒序排序

  Page<User> page = new Page<> (1,10);   //查询第1页,每页10条数据
  userMapper.selectPage(page,query);   //page分页信息,query查询条件

  System.out.println("总页数:"+ page.getPages());
  System.out.println("总记录数:"+ page.getTotal());

  // 分页返回的对象与传入的对象是同一个
  List<User> list = page.getRecords();
  list.forEach(System.out::println);
}

查询输出结果如下:

总页数:1
总记录数:6
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=1280261858003038209, name=字母哥, age=18, email=null)

在分页查询过程中,一共执行了两条SQL

# 第一条 SQL 用于查询在query条件下的总条数
SELECT COUNT(1) FROM user WHERE age >= ? 

# 第二条SQL用于查询具体的数据
SELECT id,name,age,email 
FROM user 
WHERE age >= ? 
ORDER BY age DESC 
LIMIT ?,?

这种分页方式比较适合于传统应用中,表格分页的开发。需要给出总条数,以及每页多少条。

小书MybatisPlus第4篇-表格分页与下拉分页查询

三、不查询总记录数的分页-下拉分页

在一些现代的互联网资讯网站,或者应用app。通常不会给出数据的总条数,而是通过鼠标或者手势,每次下拉都加载n条数据。

小书MybatisPlus第4篇-表格分页与下拉分页查询

这种情况下的分页通常就不需要查询总条数了,如果查询总条数浪费数据库的计算资源,使响应时间变长。所以我们应该只做分页数据查询,不查询总条数。设置page分页的第三个参数为false。

小书MybatisPlus第4篇-表格分页与下拉分页查询

输出结果总页数和总条数都是0,但是分页数据正常查询回来了。

总页数:0
总记录数:0
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=1280261858003038209, name=字母哥, age=18, email=null)

只执行了这样一个SQL

ELECT id,name,age,email 
FROM user 
WHERE age >= ? 
ORDER BY age DESC 
LIMIT ?,?

欢迎关注我的博客,里面有很多精品合集

  • 本文转载注明出处(必须带连接,不能只转文字): 字母哥博客

觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力!。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Paradigms of Artificial Intelligence Programming

Paradigms of Artificial Intelligence Programming

Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95

Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码