MybatisPlus——通用枚举&代码生成器

在这里插入图片描述

前言:

表中有某些字段名的值是固定的,例如性别 - male -female,这个时候就可以使用枚举去实现。

一、通用枚举

数据库表添加字段sex

在这里插入图片描述

创建通用枚举类型

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum SexEnum{
     
     
 MALE(1,"男"),FEMALE(2,"女");

  @EnumValue
   private Integer sex;
   private String sexName;

   SexEnum(Integer sex, String sexName) {
     
     
       this.sex = sex;
       this.sexName = sexName;
   }
}

配置扫描通用枚举

mybatis-plus:

 configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl   
 global-config:
   	 db-config:
     	#配置表操作的默认前缀
     	table-prefix: t_
      	#统一的主键生成策略
      	id-type: auto

  	#配置类型别名对应的包   
type-aliases-package: com.atguigu.mybatisplus.pojo  
	#配置扫描通用枚举   
type-enums-package: com.atguigu.mybatisplus.enums

测试

    @Autowired
    private UserMapper userMapper;
    @Test
    public void testSexEnum(){
     
     
        User user = new User();
        user.setName("Enum");
        user.setAge(20);
        //设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存入到数据库当中
        user.setSex(SexEnum.MALE);
        userMapper.insert(user);
    }
 }

二、代码生成器

1、引入依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

2、快速生成

package com.atguigu.mybatisplus;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Collections;

@SpringBootTest
public class MybatisPlusGeneratorTest {
    
    
    @Test
    public void testFastAutoGenerator(){
    
    
        FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mybatis_plus? characterEncoding=utf-8&userSSL=false", "root", "123")
                        .globalConfig(builder -> {
    
    
                            builder.author("baomidou") // 设置作者
                                //.enableSwagger() // 开启 swagger 模式
                                    .fileOverride() // 覆盖已生成文件
                                    .outputDir("D://mybatis_plus"); // 指定输出目录
                        })
                        .packageConfig(builder -> {
    
    
                            builder.parent("com.atguigu") // 设置父包名
                                    .moduleName("mybatisplus") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus"));
// 设置mapperXml生成路径
                        })
                        .strategyConfig(builder -> {
    
    
                            builder.addInclude("t_user") // 设置需要生成的表名
                                    .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                        })
                        .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                        .execute();
    }
}

猜你喜欢

转载自blog.csdn.net/ChengXuTeng/article/details/124356678