<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
package com.sc.generator;
import com.baomidou.mybatisplus.annotation.DbType;
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.rules.NamingStrategy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GeneratorApplication {
public static void main(String[] args) {
startGenerator();
SpringApplication.run(GeneratorApplication.class, args);
}
public static void startGenerator() {
//1、全局配置
GlobalConfig config = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
config.setActiveRecord(true)//开启AR模式
.setAuthor("zimug")//设置作者
.setOutputDir(projectPath + "c/main/java")//生成路径(一般在此项目的src/main/java下)
.setFileOverride(true)//第二次生成会把第一次生成的覆盖掉
.setOpen(true)//生成完毕后是否自动打开输出目录
//.setSwagger2(true)//实体属性 Swagger2 注解
//.setIdType(IdType.AUTO)//主键策略
.setServiceName("%sService")//生成的service接口名字首字母是否为I,这样设置就没有I
.setBaseResultMap(true)//生成resultMap
.setBaseColumnList(true);//在xml中生成基础列
//2、数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)//数据库类型
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/newtest?serverTimezone=UTC")
.setUsername("root")
.setPassword("root");
//3、策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true)//开启全局大写命名
.setNaming(NamingStrategy.underline_to_camel)//表名映射到实体的命名策略(下划线到驼峰)
//表字段映射属性名策略(未指定按naming)
.setColumnNaming(NamingStrategy.underline_to_camel)
//.setTablePrefix("tb_")//表名前缀
//.setSuperEntityClass("你自己的父类实体,没有就不用设置!")
//.setSuperEntityColumns("id");//写于父类中的公共字段
//.setSuperControllerClass("自定义继承的Controller类全称,带包名,没有就不用设置!")
.setRestControllerStyle(true) //生成 @RestController 控制器
.setEntityLombokModel(true)//使用lombok
.setInclude("test","test2");//逆向工程使用的表
//4、包名策略配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.sc.ge")//设置包名的parent
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("entity")
.setXml("mapper");//设置xml文件的目录
//5、整合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6、执行
autoGenerator.execute();
}
}
参考 https://www.cnblogs.com/zimug/p/13370107.html