前言:
表中有某些字段名的值是固定的,例如性别 - 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();
}
}