今天博客的主要内容包括:集成Swagger-UI、集成Mybatis-Plus、使用Mybatis-Plus重构增删改查方法、使用Mybatis-Plus重构动态多条件分页模糊查询等内容。可以看到我们项目以后基本都要使用Mybatis-Plus来与数据库进行交互了。下面就开始今天的学习吧!
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();
}
}
/**
* 分页查询接口
* 接口路径:/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);
}
到目前为止我们已经使用Mybatis-Plus替换了项目中的Mybatis内容,发现我们的代码变得更简单了,下面就是将数据与Vue前端交互了,此部分内容在下篇内容中呈现,明天见!