# 自定义代码生成器
# 快速使用
代码生成器示例-测试包下 pro.haichuang.framework.service.项目Code.CodeGenerateTest (opens new window)
/**
* 执行代码生成器, 提供简单生成与完整生成示例
* 该类下所有静态常量均可根据实际情况进行修改, 其他配置信息不建议修改
* Danger: 请谨慎执行, 每次执行会自动覆盖已有代码, 请务必提前做好备份
* ps: 如只需要生成部分表请修改 {@link CodeGenerateTest#DATASOURCE_TABLE_INCLUDE} 字段
*
* @author JiYinchuan
* @since 1.1.0.211021
*/
@SpringBootTest(classes = ServiceApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CodeGenerateTest {
/**
* 项目Code
* 项目代号缩写(项目代号首字母全小写+数字)
*/
private static final String PROJECT_CODE = "项目Code";
/**
* 作者
*/
private static final String AUTHOR = "JiYinchuan";
/**
* 驱动连接的URL
*/
private static final String DATASOURCE_URL = "jdbc:mysql://127.0.0.1:3306/data_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowMutiQueries=true";
/**
* 数据库连接用户名
*/
private static final String DATASOURCE_USERNAME = "root";
/**
* 数据库连接密码
*/
private static final String DATASOURCE_PASSWORD = "123456";
/**
* 统一表前缀
*/
private static final String DATASOURCE_TABLE_PREFIX = null;
/**
* 输出包含表
*/
private static final String[] DATASOURCE_TABLE_INCLUDE = {};
@Autowired
private MybatisGenerateCodeService mybatisGenerateCodeService;
/**
* 简单配置生成
*
* @since 1.1.0.211021
*/
@Test
void simpleSettingGenerate() {
CodeBasicConfig codeBasicConfig = new CodeBasicConfig();
// 作者
codeBasicConfig.setAuthor(AUTHOR);
CodeDataSourceConfig codeDataSourceConfig = new CodeDataSourceConfig();
// 驱动连接的URL, 须指定
codeDataSourceConfig.setUrl(DATASOURCE_URL);
// 数据库连接用户名, 须指定
codeDataSourceConfig.setUsername(DATASOURCE_USERNAME);
// 数据库连接密码, 须指定
codeDataSourceConfig.setPassword(DATASOURCE_PASSWORD);
// 统一表前缀, 可为空
codeDataSourceConfig.setTablePrefix(DATASOURCE_TABLE_PREFIX);
// 输出包含表, 可为空, 为空时则输出所有表
codeDataSourceConfig.setInclude(DATASOURCE_TABLE_INCLUDE);
CodePackageConfig codePackageConfig = new CodePackageConfig();
// 父包模块名, 须指定
codePackageConfig.setParentModelName(PROJECT_CODE);
// 开始生成
mybatisGenerateCodeService.generate(codeBasicConfig, codeDataSourceConfig, codePackageConfig);
}
/**
* 完整配置生成
*
* @since 1.1.0.211021
*/
@Test
void fullSettingGenerate() {
CodeBasicConfig codeBasicConfig = new CodeBasicConfig();
// 作者
codeBasicConfig.setAuthor(AUTHOR);
// 版本号
// 默认为 [1.0]
codeBasicConfig.setSince("1.0");
// 输出包类型
// 默认为 [CodeBasicConfig.OutputType.ALL]
codeBasicConfig.setOutputType(CodeBasicConfig.OutputType.ALL);
// 是否开启Swagger注解支持
// 默认为 [true]
codeBasicConfig.setEnableSwagger(true);
CodeDataSourceConfig codeDataSourceConfig = new CodeDataSourceConfig();
// 驱动连接的URL, 须指定
codeDataSourceConfig.setUrl(DATASOURCE_URL);
// 数据库连接用户名, 须指定
codeDataSourceConfig.setUsername(DATASOURCE_USERNAME);
// 数据库连接密码, 须指定
codeDataSourceConfig.setPassword(DATASOURCE_PASSWORD);
// 统一表前缀, 可为空
codeDataSourceConfig.setTablePrefix(DATASOURCE_TABLE_PREFIX);
// 输出包含表, 可为空, 为空时则输出所有表
codeDataSourceConfig.setInclude(DATASOURCE_TABLE_INCLUDE);
CodePackageConfig codePackageConfig = new CodePackageConfig();
// 输出包名
// 默认为 [pro.haichuang.framework.service]
codePackageConfig.setOutputPackage("pro.haichuang.framework.service");
// 父包模块名, 须指定
codePackageConfig.setParentModelName(PROJECT_CODE);
// 实体类包名
// 默认为 [pojo.domain]
codePackageConfig.setEntityPackageName("pojo.domain");
// 数据访问层包名
// 默认为 [mapper]
codePackageConfig.setMapperPackageName("mapper");
// 数据访问层XML包名, 生成后请手动移动到 [resource] 对应目录下
// 默认为 [mapper.xml]
codePackageConfig.setMapperXmlPackageName("mapper.xml");
// 业务逻辑层包名
// 默认为 [service]
codePackageConfig.setServicePackageName("service");
// 业务逻辑实现层包名
// 默认为 [service.impl]
codePackageConfig.setServiceImplPackageName("service.impl");
// 界面层包名
// 默认为 [controller]
codePackageConfig.setControllerPackageName("controller");
// 输出根目录绝对路径
// 默认为 [当前项目目录/src/main/java]
codePackageConfig.setOutputDir(System.getProperty("user.dir").concat("/src/main/java/"));
// 开始生成
mybatisGenerateCodeService.generate(codeBasicConfig, codeDataSourceConfig, codePackageConfig);
}
}
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# 核心实现
# MybatisGenerateCodeService (opens new window)
全限定名:pro.haichuang.framework.mybatis.generate.MybatisGenerateCodeService (opens new window)
代码生成器核心Service
该类为代码生成器核心Service
# CodeBasicConfig (opens new window)
全限定名:pro.haichuang.framework.mybatis.generate.config.CodeBasicConfig (opens new window)
基本配置
该类为基本配置,用于配置基本信息
# CodeDataSourceConfig (opens new window)
全限定名:pro.haichuang.framework.mybatis.generate.config.CodeDataSourceConfig (opens new window)
数据源配置
该类为数据源配置,用于配置数据源相关信息
# CodePackageConfig (opens new window)
全限定名:pro.haichuang.framework.mybatis.generate.config.CodePackageConfig (opens new window)
包配置
该类为包配置,用于配置输入包相关信息
← MapperXml文件说明 分页转换 →