Skip to main content

Mybatis Plus代码生成

本文代码来自MyBatis Plus官网

  1. 配置依赖
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.5.4'
implementation group: 'com.baomidou', name: 'mybatis-plus-generator', version: '3.5.6'
implementation group: 'freemarker', name: 'freemarker', version: '2.3.9'


compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

  1. 编写生成器类

演示例子,执行 main 方法控制台输入 模块名 表名 回车自动生成对应项目目录中

public class NewCodeGenerator {

static final String URL = "jdbc:oracle:thin:@192.168.3.161:1521:jc";
static final String USERNAME = "jc";
static final String PASSWORD = "123456";

public static void main(String[] args) {
generate();
}


private static void generate() {
FastAutoGenerator.create(URL, USERNAME, PASSWORD)
.globalConfig(builder ->
builder.author("xx")
.commentDate("yyyy-MM-dd")
.disableOpenDir()
.outputDir(System.getProperty("user.dir")+"\\src\\main\\java")
.dateType(DateType.TIME_PACK)
.disableServiceInterface()
)
.packageConfig(builder ->
builder.parent("com.whalefall541.mybatisplus.samples.generator")
.moduleName("system")
.entity("po")
.serviceImpl("service.impl")
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"\\src\\main\\resources\\mapper\\test")))

.strategyConfig(builder ->
builder.addInclude("table_a")
.controllerBuilder()
.enableFileOverride()
.enableRestStyle()
.disable()

.entityBuilder()
.enableFileOverride()
.enableLombok()
.disableSerialVersionUID()
.enableTableFieldAnnotation()
.enableActiveRecord()
.enableFileOverride()
// .addTableFills(new Column("timecolunmn", FieldFill.INSERT))
.formatFileName("%sPO")

.serviceBuilder()
.disable()
.enableFileOverride()
.formatServiceImplFileName("%sServiceImpl")

.mapperBuilder()
.enableFileOverride()
.mapperAnnotation(Mapper.class)

).templateEngine(new FreemarkerTemplateEngine()).execute();
}

}