SpringBoot实现集成Mybatis-Plus和SwaggerUI——基于SpringBoot和Vue的后台管理系统项目系列博客(八)

系列文章目录

  1. 系统功能演示——基于SpringBoot和Vue的后台管理系统项目系列博客(一)
  2. Vue2安装并集成ElementUI——基于SpringBoot和Vue的后台管理系统项目系列博客(二)
  3. Vue2前端主体框架搭建——基于SpringBoot和Vue的后台管理系统项目系列博客(三)
  4. SpringBoot后端初始框架搭建——基于SpringBoot和Vue的后台管理系统项目系列博客(四)
  5. SpringBoot集成Mybatis——基于SpringBoot和Vue的后台管理系统项目系列博客(五)
  6. SpringBoot实现增删改查——基于SpringBoot和Vue的后台管理系统项目系列博客(六)
  7. SpringBoot实现分页查询——基于SpringBoot和Vue的后台管理系统项目系列博客(七)
  8. SpringBoot实现集成Mybatis-Plus和SwaggerUI——基于SpringBoot和Vue的后台管理系统项目系列博客(八)
  9. Vue实现增删改查——基于SpringBoot和Vue的后台管理系统项目系列博客(九)
  10. SpringBoot实现代码生成器——基于SpringBoot和Vue的后台管理系统项目系列博客(十)
  11. Vue使用路由——基于SpringBoot和Vue的后台管理系统项目系列博客(十一)
  12. SpringBoot和Vue实现导入导出——基于SpringBoot和Vue的后台管理系统项目系列博客(十二)
  13. SpringBoot和Vue实现用户登录注册与异常处理——基于SpringBoot和Vue的后台管理系统项目系列博客(十三)
  14. SpringBoot和Vue实现用户个人信息展示与保存与集成JWT——基于SpringBoot和Vue的后台管理系统项目系列博客(十四)
  15. SpringBoot和Vue实现文件上传与下载——基于SpringBoot和Vue的后台管理系统项目系列博客(十五)
  16. SpringBoot和Vue整合ECharts——基于SpringBoot和Vue的后台管理系统项目系列博客(十六)
  17. SpringBoot和Vue实现权限菜单功能——基于SpringBoot和Vue的后台管理系统项目系列博客(十七)
  18. SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)
  19. 用户前台页面设计与实现——基于SpringBoot和Vue的后台管理系统项目系列博客(十九)
  20. SpringBoot集成Redis实现缓存——基于SpringBoot和Vue的后台管理系统项目系列博客(二十)
  21. SpringBoot和Vue集成高德地图——基于SpringBoot和Vue的后台管理系统项目系列博客(二十一)
  22. SpringBoot和Vue集成视频播放组件——基于SpringBoot和Vue的后台管理系统项目系列博客(二十二)
  23. SpringBoot和Vue集成Markdown和多级评论——基于SpringBoot和Vue的后台管理系统项目系列博客(二十三)

项目资源下载

  1. GitHub下载地址
  2. Gitee下载地址
  3. 项目MySql数据库文件


前言

  今天博客的主要内容包括:集成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("更多请关注: https://blog.csdn.net/IronmanJay?spm=1003.2020.3001.5343")
                .termsOfServiceUrl("https://blog.csdn.net/IronmanJay?spm=1003.2020.3001.5343")
                .contact(new Contact("IronmanJay", "https://blog.csdn.net/IronmanJay?spm=1003.2020.3001.5343", "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前端交互了,此部分内容在下篇内容中呈现,明天见!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IronmanJay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值