文章目录
- 系列文章目录
- 项目资源下载
- 前言
- 一、集成Swagger-Ui
- 二、集成Mybatis-Plus
- 三、使用Mybatis-Plus重构增删改查方法
- 四、使用Mybatis-Plus重构动态多条件分页模糊查询
- 总结
前言
今天博客的主要内容包括:集成Swagger-UI、集成Mybatis-Plus、使用Mybatis-Plus重构增删改查方法、使用Mybatis-Plus重构动态多条件分页模糊查询等内容。可以看到我们项目以后基本都要使用Mybatis-Plus来与数据库进行交互了。下面就开始今天的学习吧!
一、集成Swagger-Ui
- 为了我们后续方便的进行调试,所以我们在项目中集成Swqgger-Ui。首先在pom.xml中引入Swagger-Ui的依赖
- 然后在application.yml中加入如下内容,为了解决Springboot与Swagger-Ui版本不兼容的问题
- 在config目录下新建SwaggerConfig.java
- 在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();
}
}
- 最后访问http://localhost:9090/swagger-ui/index.html测试一下,发现集成Swagger-Ui成功
二、集成Mybatis-Plus
- 首先在pom.xml中引入Mybatis-Plus的依赖
- 在此目录下新建MybatisPlusConfig.java
- 在其中引入Mybatis-Plus分页插件,需要注意我标红的地方需要与你项目一致
- 将UserMapper.java中原来的@Mapper删除即可
- 在application.yml中修改日志的配置
- 然后我们需要测试Mybatis-Plus是否生效
①:首先使用Postman测试,发现没有问题
②:数据更新也没有问题
三、使用Mybatis-Plus重构增删改查方法
- 首先将UserMapper.java中继承基础Mapper
- 然后在UserService.java中继承服务接口
- 然后在UserController.java中重写save方法,返回boolean类型,并且写我们自己的保存方法
- 然后回到UserService.java中,可以把原来的都删掉了,使用Mybatis-Plus非常简单的就实现了这个功能
- 然后来到User.java中,分别设置数据库名称识别与主键自增
- 最后我们测试一下,是否成功,我们将id为1的用户address修改为地球。我们发现,修改成功
- 同样我们也可以使用Mybatis-Plus写好的方法来查询所有数据
- 数据删除同理
四、使用Mybatis-Plus重构动态多条件分页模糊查询
- 在使用Mybatis-Plus重写方法之前,要把之前写的关于UserMapper的内容都删掉,如下所示
- 然后将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);
}
- 然后使用Postman验证一下,发现成功了
总结
到目前为止我们已经使用Mybatis-Plus替换了项目中的Mybatis内容,发现我们的代码变得更简单了,下面就是将数据与Vue前端交互了,此部分内容在下篇内容中呈现,明天见!