引入依赖包,要保证你使用的是mybatis-plus而不是mybatis
<!-- 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3</version>
</dependency>
<!--模板引擎有Velocity-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
实现代码,可在test包下创建test.java,要先在src/main/resources 下创建 mapper 包
package com.hzs.mall;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("=================数据库配置==================");
System.out.println("请输入 URL");
String url = scan.next();
System.out.println("请输入 username");
String username = scan.next();
System.out.println("请输入 password");
String password = scan.next();
FastAutoGenerator.create(url, username, password)
// 全局配置
.globalConfig((scanner, builder) -> builder.author(scanner.apply("==================全局配置===================\n请输入作者名称?"))
.outputDir(System.getProperty("user.dir") + "/src/main/java")
.commentDate("yyyy-MM-dd hh:mm:ss")
.dateType(DateType.TIME_PACK)
.disableOpenDir()
)
// 包配置
.packageConfig((scanner, builder) -> builder.parent(scanner.apply("==================包配置====================\n请输入包名?"))
.moduleName(scanner.apply("请输入父包模块名?"))
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"/src/main/resources/mapper"))
)
// 策略配置
.strategyConfig((scanner, builder) -> {
builder.addInclude(getTableNames(scanner.apply("==================策略配置====================\n请输入表名,多个英文逗号分隔?所有输入 all")))
.serviceBuilder()
.controllerBuilder()
.enableRestStyle()
.enableHyphenStyle()
.entityBuilder()
.enableLombok()
.enableChainModel();
})
.execute();
}
// 处理 all 情况
protected static List<String> getTableNames(String tableNames) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}
启动后,注意事项
