逆向工程
Mybatis-Plus是基于数据库表来实现自动生成代码的逆向工程。通过代码生成器生成代码后,可以在生成的代码中直接使用Mybatis-plus
依赖
<!--mybatis-plus-->
<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.5.1</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
代码
package generate;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 逆向工程
*
* @author lihongliang
* @since 2024/1/5 14:07
*/
public class MPGenerator {
private static final String URL = "jdbc:mysql://localhost:3306/table?useSSL=false&characterEncoding=UTF8&serverTimezone=Asia/Shanghai";
private static final String USER_NAME = "root";
private static final String PASSWORD = "root";
/**
* author
*/
private static final String AUTHOR = "lee";
/**
* 父包parent
*/
private static final String PARENT = "com.lee";
/**
* 模块moduleName
*/
private static final String MODULE_NAME = "core";
/**
* 过滤前缀TablePrefix
*/
private static final String PREFIX = "tb_";
/**
* 过滤前缀TableSuffix
*/
private static final String SUFFIX = "";
/**
* 表名,逗号隔开
*/
private static final String TABLE_NAMES = "tb_address,tb_user";
public static void main(String[] args) {
// 获取项目所在路径
String path = System.getProperty("user.dir");
FastAutoGenerator.create(URL, USER_NAME, PASSWORD)
.globalConfig(builder -> {
builder.author(AUTHOR)
.enableSwagger()
.fileOverride()
// .outputDir(path + "/src/main/java")
.outputDir("D://generate")
.build();
})
.packageConfig(builder -> {
builder.parent(PARENT)
.entity("pojo")
.moduleName(MODULE_NAME) // 设置父包模块名
.service("service")
// .pathInfo(Collections.singletonMap(OutputFile.mapperXml, path + "/src/main/resources/mapper"))
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://generate"))
.build();
})
.strategyConfig(builder -> {
builder.entityBuilder()
.enableTableFieldAnnotation()
.enableLombok()
.enableRemoveIsPrefix();
builder.controllerBuilder()
.enableRestStyle();
builder.serviceBuilder()
.formatServiceFileName("%sService");
builder.addInclude(getTables())
.addTablePrefix(PREFIX);
})
// .templateEngine(new FreemarkerTemplateEngine())
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
protected static List<String> getTables() {
return Arrays.asList(MPGenerator.TABLE_NAMES.split(","));
}
}