这是3.5.1以后的版本。属于新版本。旧版本的作废了。官网有写的。
先上依赖:
<!--MyBatis Plus 代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!--Velocity模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<!--Swagger-UI API文档生产工具(可不要)-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<artifactId>mybatis-plus-generator</artifactId>和<artifactId>velocity-engine-core</artifactId>是必须的。<artifactId>springfox-swagger2</artifactId>可以不用。但是在配置的时候有选项选择是否支持swagger。如果选择的话,也可以创建出来。但是一些swagger的依赖就会报错。所以这个看个人喜好了。
官网就快速版的,都是写死的,就不过多介绍,咱们主要还是看交互版的。
上代码:
main函数:
private static final String BASE = "com.cloud.demo";
private static final String URL = "jdbc:mysql://localhost:3306/xxxx?useUnicode=true&useSSL=false&characterEncoding=utf-8&allowMultiQueries=true";
private static final String USER_NAME = "mysql";
private static final String PASSWORD = "123456";
public static void main(String[] args) {
FastAutoGenerator.create(initDataSourceConfig())
.globalConfig(MybatisPlusGenerator::initGlobalConfig)
.packageConfig(MybatisPlusGenerator::initPackageConfig)
.strategyConfig(MybatisPlusGenerator::initStrategyConfig)
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
// .templateEngine(new FreemarkerTemplateEngine())
.execute();
}
没什么可说的吧。简单明了。为了更清晰,各个方面的配置都单独写的初始化方法。
初始化数据源
/**
* 初始化数据源
*/
private static DataSourceConfig.Builder initDataSourceConfig() {
return new DataSourceConfig.Builder(URL, USER_NAME, PASSWORD)
.dbQuery(new MySqlQuery())
.typeConvert(new MySqlTypeConvert())
.keyWordsHandler(new MySqlKeyWordsHandler());
}
配上自己的数据库相关参数。其他几个都默认就OK。
初始化包配置
/**
* 初始化包配置
*/
private static void initPackageConfig(Function<String, String> scanner, PackageConfig.Builder builder) {
builder.parent(BASE)
.moduleName(scanner.apply("请输入模块名:"))
// .entity("po")
// .service("service")
// .serviceImpl("service.impl")
// .mapper("mapper")
// .xml("mapper.xml")
// .controller("controller")
// .other("other")
.pathInfo(Collections.singletonMap(OutputFile.xml, PROJECT_PATH + "/src/main/resources/mapper/"));
}
注掉的都是有默认的。就是我们没一层叫什么名字,应该都能看的出来。如果想叫其他名字的可以该,就比如.entity("po"),创建出来的entity文件夹就叫po了。
pathInfo修改的就是指定类型文件的输出路径。如果不写的话就使用global Config的文件输出路径。
初始化策略配置
/**
* 初始化策略配置
*/
private static void initStrategyConfig(Function<String, String> scanner, StrategyConfig.Builder builder) {
builder.addInclude(scanner.apply("请输入表名,多个英文逗号分割:"));
}
这里就增加了手动输入表名的地方,其他的全用了默认设置,一般情况下也都OK。
初始化公共配置
/**
* 初始化公共配置
*/
private static void initGlobalConfig(GlobalConfig.Builder builder) {
builder.author("San.Zhang")
// .enableSwagger()
// 指定输出目录
.outputDir(PROJECT_PATH + "/src/main/java")
// 文件头时间
.commentDate("yyyy-MM-dd HH:mm:ss")
// 是否打开文件
.disableOpenDir();
}
公共配置,增加全局文件输出路径、文件头时间格式、创建完成后是否打开文件等等~~~
总结:
基本上好些地方用的都是默认设置,因为一般情况下都是够用的,如果有特殊情况可以看需求修改设置。
附上官网参数配置详解:官网配置参数详解