Springboot整合mybatisPlus+Swagger3.0()

  本篇文章为你整理了Springboot整合mybatisPlus+Swagger3.0()的详细内容,包含有 Springboot整合mybatisPlus+Swagger3.0,希望能帮助你了解 Springboot整合mybatisPlus+Swagger3.0。

  SpringBoot+Mybatisplus+Mybatis+Swagger+代码自动生成+log4j

  1. SpringBoot+Mybatis+MybatisPlus

  1.1 mybatisplus依赖+mybatis依赖

  

 !-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -- 

 

   dependency

   groupId com.baomidou /groupId

   artifactId mybatis-plus-boot-starter /artifactId

   version 3.5.1 /version

   /dependency

  

 

  

 dependency 

 

   groupId org.mybatis.spring.boot /groupId

   artifactId mybatis-spring-boot-starter /artifactId

   version 2.2.2 /version

   /dependency

  

 

  1.2 配置信息

  1.2.1 yml中datasource配置

  

spring:

 

   datasource:

   driver-class-name: com.mysql.cj.jdbc.Driver

   url: jdbc:mysql://localhost:3307/community

   username: root

   password: 123456

  

 

  1.2.2 mybatis别名和xml扫描

  

mybatis:

 

   mapper-locations: classpath:mappers/*xml

   type-aliases-package: com.zjw.swager.mybatis.entity

  

 

  1.3测试准备

  1.3.1编写类Building

  

public class Building {

 

   //TypeId是指定这个属性为id,写上这个才可以通过操作数据库中的id属性,否则类似selectById会失效

   //并在后面追加类型,此处写的是自动类型

   @TableId(type = IdType.AUTO)

   private long id;

   private String numbers;

   private String uints;

   private String remarks;

  

 

  1.3.2编写Mapper接口BuildingMapper

  

@Mapper

 

  public interface BuildingMapper extends BaseMapper Building {

  

 

  //需要继承BaseMapper,要加上需要操作的泛型

  1.3.3 在springboot启动类中添加注解扫描Mapper

  

@SpringBootApplication

 

  //扫描Mapper包下的Mapper接口

  @MapperScan("com.zjw.mapper")

  public class Springboottest01Application {

   public static void main(String[] args) {

   SpringApplication.run(Springboottest01Application.class, args);

  

 

  1.3.4 编写测试类

  

@SpringBootTest

 

  public class demo1 {

   @Autowired

   private BuildingMapper buildingMapper;

   @Test

   public void test01(){

   Building building = buildingMapper.selectById(1);

   System.out.println("building = " + building);

  

 

  输出结果:
 

  building = Building{id=1, numbers=21栋, uints=1单元, remarks=无}
 

  测试成功!

  1.4 QueryWrapper条件构造器

  

 // 条件查询

 

   QueryWrapper Building queryWrapper = new QueryWrapper ();

   // eq 参数1 给的是表的字段 参2 值

  // queryWrapper.eq("sid",4);

  // queryWrapper.eq("sage",40);

   // queryWrapper 支持链式编程

   queryWrapper.eq("sid", 4)

   .eq("sage", 40);

   // 条件包装类 会自动完成 sql的条件 拼接

   // SELECT sid,s_name,sage,ssex,sphone FROM t_student WHERE (sid = ? AND sage = ?)

   Building building = buildingMapper.selectOne(queryWrapper);

   System.out.println("building = " + building);

  

 

  ​
 

  复杂的查询条件时使用QueryWrapper条件构造器

  1.5 小结 整合步骤

  01 添加mybatis-plus的依赖

  02 配置数据库连接要素

  03 写自己的mapper 继承 mp 的BaseMapper \ 要给泛型

  04 需要在启动类中扫描mapper包

  1.6 分页

  新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
 

  因此需要添加MybatisPlusConfig配置类进行设置

  1.6.1 添加配置类,设置拦截器

  @Configuration
 

  public class MybatisPlusConfig {
 

  @Bean
 

  public MybatisPlusInterceptor mybatisPlusInterceptor(){
 

  MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
 

  // 拦截器添加分页插件
 

  mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
 

  return mybatisPlusInterceptor;
 

  }
 

  }

  1.6.2 测试分页

  

@Test

 

  public void test02(){

   QueryWrapper Building qr = new QueryWrapper ();

   qr.lt("id",100);

   IPage Building page1 = new Page (1,4);

   IPage Building page = buildingMapper.selectPage(page1, qr);

   System.out.println("page = " + page.getRecords());

  

 

  输出结果:
 

  page = [Building{id=1, numbers=21栋, uints=1单元, remarks=无}, Building{id=7, numbers=17栋, uints=2单元, remar。。。。。。
 

  测试成功!

  2. pringBoot+Mybatisplus+Mybatis+Swagger

  2.1依赖

  

 !-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -- 

 

   dependency

   groupId com.baomidou /groupId

   artifactId mybatis-plus-boot-starter /artifactId

   version 3.5.1 /version

   /dependency

   dependency

   groupId org.mybatis.spring.boot /groupId

   artifactId mybatis-spring-boot-starter /artifactId

   version 2.2.2 /version

   /dependency

   !-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --

   dependency

   groupId io.springfox /groupId

   artifactId springfox-swagger-ui /artifactId

   version 2.9.2 /version

   /dependency

   !-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --

   dependency

   groupId io.springfox /groupId

   artifactId springfox-swagger2 /artifactId

   version 2.9.2 /version

   /dependency

  

 

  这里的swagger版本建议用低一些的版本,高版本有兼容性问题!
 

  Failed to start bean ‘documentationPluginsBootstrapper’ 把springboot 版本改成2.6.0 以下版本就可以
 

  若有版本问题:
 

  将依赖改成依赖集合

  

 dependency 

 

   groupId io.springfox /groupId

   artifactId springfox-boot-starter /artifactId

   version 3.0.0 /version

   /dependency

  

 

  ​ 原先的Swagger的两个依赖不再需要
 

  ​ 同时配置中的@EnableSwagger2也不再需要加上,以下为可选项
 

  ​ //@EnableSwagger2
 

  ​ @EnableOpenApi//可以不写

  2.2 配置

  swagger需要配置类设置API文档信息

  2.2.1编写swagger配置类

  

//1. 配置类

 

  @Configuration

  //2. 开启swagger支持

  //@EnableSwagger2

  @EnableOpenApi//swagger3.0依赖 可以不写

  public class SwaggerApp {

   * 3、自动创建Docket文档摘要对象

   @Bean

   public Docket createRestApi(){

   return new Docket(DocumentationType.SWAGGER_2) // 选择swagger的版本,这里若选的3.0则要用OAS_30

   // 配置文档信息:swagger文档的标题、版本、描述

   .apiInfo(this.apiInfo())

   .select()

   // 配置要生成swagger文档的扫描的目录包

   .apis(RequestHandlerSelectors.basePackage("com.woniu.web"))

   // 对指定路径下的任意类生成文档

   .paths(PathSelectors.any())

   // 创建对象

   .build();

   private ApiInfo apiInfo(){

   return new ApiInfoBuilder()

   // 指定文档标题 (在swagger页面会显示)

   .title("SpringBoot中使用Swagger构建接口文件")

   // 指定文档的版本

   .version("1.0")

   // 文档描述

   .description("API描述").build();

  

 

  2.2.2 通过注解添加API中的内容

  2.2.2.1 实体类中

  

//实体类上的注解

 

  @ApiModel(description = "建筑类实体")

  public class Building {

   //TypeId是指定这个属性为id,写上这个才可以通过操作数据库中的id属性,否则类似selectById会失效

   //并在后面追加类型,此处写的是自动类型

   @TableId(type = IdType.AUTO)

   //实体类中属性的注解

   @ApiModelProperty("主键id")

   private long id;

   @ApiModelProperty("楼栋号")

   private String numbers;

   @ApiModelProperty("单元号")

   private String uints;

   @ApiModelProperty("备注")

   private String remarks;

  

 

  2.2.2.2 mapper中的设置

  

@Mapper

 

  public interface BuildingMapper extends BaseMapper Building {

  

 

  需要继承BaseMapper ,设置好泛型

  2.2.2.3 service中的设置

  

public interface BuildingService extends IService Building {

 

  

 

  需要继承IService

  2.2.2.4ServiceImp中的设置

  

@Service

 

  public class BuildingServiceImpl extends ServiceImpl BuildingMapper, Building implements BuildingService {

  

 

  在实现BuildingService的同时,还要继承ServiceImpl BuildingMapper ,Building

  2.2.2.5controller 中的设置及注解

  

@RestController//rest风格注解,替代@Controller和@ResponseBody

 

  @RequestMapping("/building") 设置访问路径

  @Api(tags = "楼栋管理")//swagger注解,解释controller的功能

  public class BuildingController {

   @Autowired//自动注入

   private BuildingService buildingService;

   @GetMapping

  
 

 

  swagger3.0访问路径:http://localhost:8080/swagger-ui/
 

  swagger2访问路径:http://localhost:8080/swagger-ui.html

  3. 整合代码自动生成(代码生成器)

  3.1 依赖

  

 dependency 

 

   groupId com.baomidou /groupId

   artifactId mybatis-plus-generator /artifactId

   version 3.5.2 /version

   /dependency

   dependency

   groupId mysql /groupId

   artifactId mysql-connector-java /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-freemarker /artifactId

   /dependency

  

 

  当前包未传递依赖 MP 包,需要自己引入!

  3.2 配置代码生成

  

public static void main(String[] args) {

 

   FastAutoGenerator.create(

   "jdbc:mysql://localhost:3306/spring_db",

   "root",

   "root")

   // 全局配置

   .globalConfig(builder - {

   builder.author("yellow Docter") // 设置作者

   .enableSwagger() // 开启 swagger 模式

   .outputDir("C:\\java_lesson\\pro\\springboot_auto\\src\\main\\java"); // 指定输出目录

   // 包配置

   .packageConfig(builder - {

   builder.parent("com.wn") // 设置父包名

   .controller("controller") //controller

   .service("service") //service

   .serviceImpl("service.impl")

   .mapper("mapper")

   .xml("mapper")

   .entity("entity");

   //表的配置

   .strategyConfig(builder - {

   builder.addInclude("user"); // 设置需要生成的表名

   .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板

   .execute();

   System.out.println("成功了...");

  

 

  3.3运行

  配置好生成代码类后直接运行类中主方法
 

  即可生成
 

  注意设置包名及路径

  以上就是Springboot整合mybatisPlus+Swagger3.0()的详细内容,想要了解更多 Springboot整合mybatisPlus+Swagger3.0的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: