分页查询--Java项目实战篇

系列文章目录

全局异常处理–Java实战项目篇
完善登录功能–过滤器的使用
Java后端开发功能模块思路
Spring Boot自动配置–如何切换内置Web服务器
SpringBoot项目部署
该系列文章持续更新,更多的文章请点击我的主页查看哦!



前言

分页查询,想必大家在看到这篇文章时也已了解什么是分页查询。这个功能也是开发过程中很常见的一个功能模块知识点。在显示到页面用户看到的也大多数都是分页查询展示出来的数据,数据多时还会有一个搜索框,用户在搜索框内输入完信息后,后台就会使用模糊查询将用户搜索的信息相关的内容展示到页面给用户。这个过程离不开分页查询。

然而分页查询自己写源码是一个非常复杂的过程。这里Mybatis-Plus就为我们提供了分页查询的功能,我们只需要按照Mybatis-Plus里封装好的基础上去编写业务逻辑代码即可(会使用即可),不用去操心分页查询操作是如何实现的。

下面我们就通过一个案例实现分页查询,将员工信息显示在页面上。


一、导入依赖

刚才我们说到分页查询,使用MyBatis-Plus中的插件来实现这个功能。要想使用MyBatis-Plus就需要先导入所需的依赖。
在pom.xml文件中添加依赖,代码如下:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

二、配置分页插件

在config包下添加配置类MybatisPlusConfig。该类下将PaginationInnerInterceptor()分页查询的插件添加进去,在项目启动时就会加载进去,里面分页插件的方法我们也可以实现运行。

/**
 * 配置MP的分页插件
 * */
@Configuration
public class MybatisPlusConfig {
    
    
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
    
    
        MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();

        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

三、编写代码

3.1 查看接口信息

通过下图我们可以看到,传入的参数为
page:第几页的数据
pageSize:一页展示几条数据
name:输入筛选查询的信息时的参数
请求的路径是employee/page。以GET方式发送的请求。
如下图所示:
在这里插入图片描述

3.2 根据接口实现方法

我们要知道,在返回参数时返回值为Page类,这是Mybatis-Plus封装的类,我们将查询的数据封装好返回Page信息即可。
代码逻辑如下:
1、首先要创建分页构造器,将查询的页数page、每页查询的数据pageSize、传进去。像这样:Page pageInfo=new Page(page,pageSize);

2、然后使用Mybatis-Plus的LambdaQueryWrapper进行条件查询,注意:这里用户输入的name参数我们要用模糊查询。

3、最后调用Mybatis-Plus的page方法,第一个参数就是将创建的pageInfo信息,第二个就是查询的条件queryWrapper。

代码如下:

/**
     * 员工信息分页查询
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    @GetMapping("/page")
    public R<Page> page(int page,int pageSize,String name){
    
    
        //创建分页构造器
        Page pageInfo=new Page(page,pageSize);
        //创建条件构造器
        LambdaQueryWrapper<Employee> queryWrapper=new LambdaQueryWrapper<>();
        //查询条件
        queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);
        //对查询结果排序
        queryWrapper.orderByDesc(Employee::getUpdateTime);
        //执行查询
        employeeService.page(pageInfo,queryWrapper);
        return R.success(pageInfo);
    }

3.3 页面展示效果

从下图可看到默认查询的第一页数据是5条,我的数据库有8条数据,分成2页。

如果点击第二页,参数信息就是page=2&pageSize=5,但第二页数据不够5条,就显示数据表中剩下的3条数据。加入name参数就是按照员工姓名查询对应的信息。
在这里插入图片描述


总结

分页查询到这里就实现完成了,这里主要解释分页查询功能的用法和如何去使用分页功能。但就像关系到的前端页面如何实现的数据回显,axios异步请求、样式等该案例设计到的前端知识点没有展示。这里还是注重于后端java的开发实现。

从文章中大家也可以看到MyBatis-Plus给我们提供了很多强大的功能用于我们简化开发。大大提高了我们的开发效率,我们更多的精力可以放在业务逻辑的处理上。没有学习过MyBatis-Plus的小伙伴建议学习学习(是在学习过MyBatis的基础上)。因为如果直接的去学习MP(简称MyBatis-Plus)而没有学过MyBatis,那对于底层的基础还是有很大欠缺的。

我是心态还需努力呀,对于后端java开发感兴趣的小伙伴可以私信交流哦~

猜你喜欢

转载自blog.csdn.net/weixin_52258054/article/details/129048666