1、官网介绍
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
官网地址:https://mp.baomidou.com/guide/generator.html
2、引入依赖
<!-- MySQL 数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- mybatis-plus 启动器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
3、编写配置类
package com.yanghui.mybatisplus;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName MybatisPlusCode
* @Author YH
* @Date 2021/6/8
* @Version 1.0
*/
public class MybatisPlusCode {
public static void main(String[] args) {
// 构建一个代码生成器对象
AutoGenerator mpg = new AutoGenerator();
// 1、全局配置
GlobalConfig globalConfig = new GlobalConfig();
// 获取当前项目路径
String projectPath = System.getProperty("user.dir");
// 设置输出目录
globalConfig.setOutputDir(projectPath + "/src/main/java");
// 设置作者
globalConfig.setAuthor("YH");
globalConfig.setOpen(false);
// 是否覆盖原来的
globalConfig.setFileOverride(false);
// 去掉 Service 的 i 前缀
globalConfig.setServiceName("%sService");
// 主键生成策略
// globalConfig.setIdType(IdType.ID_WORKER);
// 日期类型,仅仅是日期
globalConfig.setDateType(DateType.ONLY_DATE);
// 是否开启 Swagger
// globalConfig.setSwagger2(true);
// 将全局配置文件放到代码生成器对象中
mpg.setGlobalConfig(globalConfig);
// 2、设置数据源
DataSourceConfig dataSourceConfig = new DataSourceConfig();
// 设置数据库类型
dataSourceConfig.setDbType(DbType.MYSQL);
// 设置数据库连接驱动
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
// 设置数据库 URL
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/springboot" +
"?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
// 设置用户名
dataSourceConfig.setUsername("root");
// 设置密码
dataSourceConfig.setPassword("1234567890");
// 将全局配置文件放到代码生成器中
mpg.setDataSource(dataSourceConfig);
// 3、包的配置
PackageConfig packageConfig = new PackageConfig();
// 设置模块名字,这个设置了,Mybatis-plus 会自动帮你建立一个以模块名字命名的包,所有的生成会放到这个模块下面
// packageConfig.setModuleName("Mybatis-Plus");
// 生成到哪个包下面
packageConfig.setParent("com.yanghui.mybatisplus");
// 设置每一层的包名
// 实体类
packageConfig.setEntity("pojo");
// 控制器
packageConfig.setController("controller");
// Service 接口
packageConfig.setService("service");
// Service 实现类
packageConfig.setMapper("mapper");
// 将包配置放到代码生成器中
mpg.setPackageInfo(packageConfig);
// 4、策略配置
StrategyConfig strategy = new StrategyConfig();
// 重要!!!设置要生成代码的表名,可以多个,这是个可变长参数
strategy.setInclude("user");
// 设置驼峰命名开启
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 自动生成 Lombok
strategy.setEntityLombokModel(true);
// 设置逻辑删除
strategy.setLogicDeleteFieldName("deleted");
// 自动填充配置
// 创建时间
TableFill createTime = new TableFill("create_time", FieldFill.INSERT);
// 修改时间
TableFill updateTime = new TableFill("update_time", FieldFill.INSERT_UPDATE);
List<TableFill> tableFills = new ArrayList<>();
tableFills.add(createTime);
tableFills.add(updateTime);
strategy.setTableFillList(tableFills);
// 乐观锁
strategy.setVersionFieldName("version");
// Controller 使用 Rest 的风格
strategy.setRestControllerStyle(true);
// 将策略放到代码生成器中
mpg.setStrategy(strategy);
// 设置下划线的URL风格,比如 localhost:8080/hello_id_2
// strategy.setControllerMappingHyphenStyle(true);
// 执行代码生成器
mpg.execute();
}
}
4、开始运行
运行成功,帮我们自动生成了代码!