文章目录

  • 系列文章目录
  • 项目资源下载
  • 前言
  • 一、集成Swagger-Ui
  • 二、集成Mybatis-Plus
  • 三、使用Mybatis-Plus重构增删改查方法
  • 四、使用Mybatis-Plus重构动态多条件分页模糊查询
  • 总结



前言

  今天博客的主要内容包括:集成Swagger-UI、集成Mybatis-Plus、使用Mybatis-Plus重构增删改查方法、使用Mybatis-Plus重构动态多条件分页模糊查询等内容。可以看到我们项目以后基本都要使用Mybatis-Plus来与数据库进行交互了。下面就开始今天的学习吧!


一、集成Swagger-Ui

  1. 为了我们后续方便的进行调试,所以我们在项目中集成Swqgger-Ui。首先在pom.xml中引入Swagger-Ui的依赖
  2. 然后在application.yml中加入如下内容,为了解决Springboot与Swagger-Ui版本不兼容的问题
  3. 在config目录下新建SwaggerConfig.java
  4. 在SwaggerConfig.java中加入以下代码,要注意名称等要换成自己的
package com.ironmanjay.springboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
@EnableOpenApi
public class SwaggerConfig {

    /**
     * 创建API应用
     * apiInfo() 增加API相关信息
     * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
     * 本例采用指定扫描的包路径来定义指定要建立API的目录。
     *
     * @return
     */
    @Bean
    public Docket restApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("标准接口")
                .apiInfo(apiInfo("Spring Boot中使用Swagger2构建RESTful APIs", "1.0"))
                .useDefaultResponseMessages(true)
                .forCodeGeneration(false)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ironmanjay.springboot.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 创建该API的基本信息(这些基本信息会展现在文档页面中)
     * 访问地址:http://ip:port/swagger-ui.html
     *
     * @return
     */
    private ApiInfo apiInfo(String title, String version) {
        return new ApiInfoBuilder()
                .title(title)
                .description("更多请关注: ")
                .termsOfServiceUrl("")
                .contact(new Contact("IronmanJay", "", "1975686676@qq.com"))
                .version(version)
                .build();
    }

}
  1. 最后访问http://localhost:9090/swagger-ui/index.html测试一下,发现集成Swagger-Ui成功

二、集成Mybatis-Plus

  1. 首先在pom.xml中引入Mybatis-Plus的依赖
  2. 在此目录下新建MybatisPlusConfig.java
  3. 在其中引入Mybatis-Plus分页插件,需要注意我标红的地方需要与你项目一致
  4. 将UserMapper.java中原来的@Mapper删除即可
  5. 在application.yml中修改日志的配置
  6. 然后我们需要测试Mybatis-Plus是否生效
    ①:首先使用Postman测试,发现没有问题

    ②:数据更新也没有问题

三、使用Mybatis-Plus重构增删改查方法

  1. 首先将UserMapper.java中继承基础Mapper
  2. 然后在UserService.java中继承服务接口
  3. 然后在UserController.java中重写save方法,返回boolean类型,并且写我们自己的保存方法
  4. 然后回到UserService.java中,可以把原来的都删掉了,使用Mybatis-Plus非常简单的就实现了这个功能
  5. 然后来到User.java中,分别设置数据库名称识别与主键自增
  6. 最后我们测试一下,是否成功,我们将id为1的用户address修改为地球。我们发现,修改成功
  7. 同样我们也可以使用Mybatis-Plus写好的方法来查询所有数据
  8. 数据删除同理

四、使用Mybatis-Plus重构动态多条件分页模糊查询

  1. 在使用Mybatis-Plus重写方法之前,要把之前写的关于UserMapper的内容都删掉,如下所示
  2. 然后将UserController.java中的分页查询方法(findPage)修改为如下简单的内容,就可以实现多条件分页模糊查询了
/**
 * 分页查询接口
 * 接口路径:/user/page
 *
 * @param pageNum  = (pageNum - 1) * pageSize
 * @param pageSize = pageSize
 * @param username 用户名
 * @param email    邮箱
 * @param address  地址
 * @return 返回分页用户信息
 * @RequestParam 接收?pageNum=1&pageSize=10
 */
@GetMapping("page")
public IPage<User> findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(defaultValue = "") String username, @RequestParam(defaultValue = "") String email, @RequestParam(defaultValue = "") String address) {
    IPage<User> page = new Page<>(pageNum, pageSize);
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    if (!"".equals(username)) {
        queryWrapper.like("username", username);
    }
    if (!"".equals(email)) {
        queryWrapper.like("email", email);
    }
    if (!"".equals(address)) {
        queryWrapper.like("address", address);
    }
    queryWrapper.orderByDesc("id");
    return userService.page(page, queryWrapper);
}
  1. 然后使用Postman验证一下,发现成功了

总结

  到目前为止我们已经使用Mybatis-Plus替换了项目中的Mybatis内容,发现我们的代码变得更简单了,下面就是将数据与Vue前端交互了,此部分内容在下篇内容中呈现,明天见!