代码生成器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>


<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>

如果你要使用swagger就要配置导入swagger的包

配置类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.saxon.mybatis_plus.AutoGenerator;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.lang.reflect.Array;
import java.util.Arrays;

public class Generator {
public static void main (String[] args) {
AutoGenerator mgp = new AutoGenerator ();
//全局配置
GlobalConfig gc = new GlobalConfig ();
gc.setIdType (IdType.ASSIGN_ID);//设置全局唯一ID
gc.setFileOverride (true);//是否覆盖
gc.setDateType (DateType.ONLY_DATE);//设置日期格式
String projectPath = System.getProperty ("user.dir");
gc.setOutputDir (projectPath + "/src/main/java");
gc.setAuthor ("saxon");//设置文件作者
gc.setOpen (false);//完成后是否打开文件夹
gc.setServiceName ("%sService");
gc.setSwagger2 (true); //实体属性 Swagger2 注解
mgp.setGlobalConfig (gc);

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig ();
dsc.setUrl ("jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8");
// dsc.setSchemaName("public");
dsc.setDriverName ("com.mysql.cj.jdbc.Driver");
dsc.setUsername ("root");
dsc.setPassword ("123456");
dsc.setDbType (DbType.MYSQL);
mgp.setDataSource (dsc);
// 包配置:设置想要创建的包
PackageConfig pc = new PackageConfig ();
pc.setParent ("com.saxon.mybatis_plus");//生成的文件夹就在这个目录下
// pc.setModuleName ("blog"); //如果设置就会把生成的包放在这个报下
pc.setEntity ("pojo");//设置实体类的包名
pc.setMapper ("mapper");//Dao的名字
pc.setController ("controller");//controller的名字
pc.setService ("service");//service的名字
mgp.setPackageInfo (pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig ();
strategy.setNaming (NamingStrategy.underline_to_camel);//下划线变成驼峰
strategy.setColumnNaming (NamingStrategy.underline_to_camel);//下划线变成驼峰
// strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");//再创建类的时候加上extends
strategy.setEntityLombokModel (true);
strategy.setRestControllerStyle (true);
// 写于父类中的公共字段
strategy.setInclude ("user");//设置你要映射的表名
strategy.setControllerMappingHyphenStyle (true);
strategy.setLogicDeleteFieldName ("deleted");//设置逻辑删除功能
strategy.setVersionFieldName ("version");//设置乐观锁插件
TableFill createTime = new TableFill ("create_time", FieldFill.INSERT);
TableFill modifyTime = new TableFill ("modify_time", FieldFill.UPDATE);
strategy.setTableFillList (Arrays.asList (createTime, modifyTime));
mgp.setStrategy (strategy);
mgp.execute ();
}
}